我正在使用.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,如何获取.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>

最佳答案

这行:

RewriteCond %{REQUEST_FILENAME} -D

本来应该:
RewriteCond %{REQUEST_FILENAME} -d

10-08 06:35
查看更多