我正在使用一个 .htaccess 文件将对目录的请求重定向到一个自定义的 PHP 文件,该文件提供有关该目录的信息(而且我希望浏览器显示的 URL 不会改变)。
以下是 .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
文件的另一部分可能存在问题,您可以把整个文件贴出来吗? - Tim Stone