我似乎无法通过这个非常简单的.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
可能是什么问题?
答案 0 :(得分:0)
通过在顶部添加条件规则来修复。
RewriteCond %{REQUEST_URI} /d$
RewriteRule ^.*$ index.php [L]
但我现在根本不喜欢它,因为现在我的htaccess中有两次基本文件夹。也许有人会找到更好的解决方案。
答案 1 :(得分:0)
尝试将[QSA]
添加到规则的末尾。这将悄悄地传递整个查询字符串。
答案 2 :(得分:0)
确保您的PHP代码不会重定向请求。您的重写规则显示为index.php?path=
,但您看到的网址为?path=
。这可能是由重定向引起的。