我正在使用一个.htaccess文件来将目录的请求定向到提供有关该目录的信息的自定义php文件(并且我希望浏览器显示的URL不会更改)。mod_rewrite:添加尾部斜杠?
这里是.htaccess文件的相关部分。
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ /myphp.php?url=%{REQUEST_URI} [QSA,L]
这种运作良好,如果你去到一个目录,包括尾随斜线:
http://domain.com/path/
但是,如果没有最后的斜线,它不
http://domain.com/path
的网址(如图所示在浏览器中)变成:
http://localhost:8888/path/?url=/path
我试着加入这个规则之上的规则解决这个:
RewriteCond %{REQUEST_FILENAME} -D
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L]
但不是为我工作。
我该如何获得.htaccess添加尾部斜杠,如果它被省略,然后就像它在那里一样?
谢谢
更新: 按照要求,这里是整个事情。
<IfModule mod_rewrite.c>
RewriteEngine On
#force trailing slashes on real directories
RewriteCond %{REQUEST_FILENAME} -D
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L]
#use the directory viewer on directories without an index page
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ /myphp.php?url=%{REQUEST_URI} [QSA,L]
</IfModule>
根据你描述我认为有一些错误的另一部分的行为的指令你的'.htaccess'文件,所以你介意发布整个事情? – 2010-06-28 18:45:26