再一次:.htaccess - RewriteRules工作,但浏览器地址栏显示完整(不友好)的URL

时间:2011-01-05 21:26:11

标签: .htaccess

我似乎无法通过这个非常简单的.htaccess文件找到我的问题:

Options -Indexes
Options +FollowSymLinks
RewriteEngine on
RewriteBase /d/
`#`drupal style url rewriting
RewriteRule ^([^.]*)$ index.php?path=$1 [L]

除了根网址之外的所有内容都没有斜线。所以它重写并将隐藏的获取查询字符串传递给我localhost/d/x/y/z的{​​{1}}页面,?path=x/y/z localhost/d/ ?path= (blank),但localhost/d有效,但现在显示在地址中吧,这个丑陋的怪物:

http://localhost/d/?path=/Users/audiozoom/Documents/webroot/d

可能是什么问题?

3 个答案:

答案 0 :(得分:0)

通过在顶部添加条件规则来修复。

RewriteCond %{REQUEST_URI} /d$

RewriteRule ^.*$ index.php [L]

但我现在根本不喜欢它,因为现在我的htaccess中有两次基本文件夹。也许有人会找到更好的解决方案。

答案 1 :(得分:0)

尝试将[QSA]添加到规则的末尾。这将悄悄地传递整个查询字符串。

答案 2 :(得分:0)

确保您的PHP代码不会重定向请求。您的重写规则显示为index.php?path=,但您看到的网址为?path=。这可能是由重定向引起的。