【发布时间】:2013-06-15 10:18:47
【问题描述】:
我的问题是,如果我用以下规则重写我的 URL
RewriteCond %{QUERY_STRING} ^site=meine-bar&filter=([a-zA-Z]+)$
RewriteRule ^meine-bar/([a-zA-Z]+)$ index.php?site=meine-bar&filter=$1 [L]
我的 index.php 也能识别新的 URL,但我的依赖项是错误的。
例如。
通常链接是例如
<link href="css/style.css" ... />
现在我已经重写了 URL,index.php 会在 meine-bar/css/style.css 中查找链接
如何告诉 Mod Rewrite 只是“虚拟地”将我重定向到这个不存在的文件夹?我不想在文件夹中(因为它不存在),我只是不想让用户相信这个文件夹存在(URL 必须看起来像它存在)
【问题讨论】:
-
我看到的唯一解决方案(不是在 Mod_Rewrite 端)是检查 PHP 中的 REQUEST 字符串,如果它包含 ../meine-bar/.. 来准备一个“../”到每个链接。通过这种方式,它会纠正每个链接,但这似乎不是一个非常干净的解决方案。
-
您希望您的网址是什么样的?就像用户将看到的那样?然后它也应该重写的确切 URL 是什么。我知道你有一个例子,但它让我更清楚地看到你想要完成什么。
-
我的 index.php?site=meine-bar 被重写为 /meine-bar index.php?site=meine-bar&filter=sirup 应该被重写为 meine-bar/sirup 并且它可以工作,但是如重定向后的问题中所述,所有链接也都使用新 URL,但实际上我只想显示 meine-bar/...,但 meine-bar 不是真正的文件夹。你明白我的意思吗?
-
好的回答了。让我知道这是否适合你
-
对不起,那我想我不明白你的意思。因为我的回答清楚地解决了您描述的问题,并且我举例说明了我的大多数网站都是这样的(不存在的文件夹)。
标签: php regex apache url mod-rewrite