微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mod_rewrite:添加尾部斜杠?

我正在使用一个.htaccess文件来指示一个目录的请求到一个自定义PHP文件,提供有关该目录的信息(我希望浏览器显示的URL不会改变)。

这里是.htaccess文件的相关部分。

RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.*)$ /myPHP.PHP?url=%{REQUEST_URI} [QSA,L]

如果你转到一个目录并且包含一个尾部的斜线,这个效果很好:

http://domain.com/path/

但是,如果没有斜线,它不会

Nginx – Magento多个网站

禁止您无权访问/在此服务器上。 服务器无法读取htaccess文件,拒绝访问是安全的

使用Nginx代码点火器为嵌套应用程序提供404错误

mod_rewrite的部分url为GEtvariables

htaccess rewriterule和directoryindex

http://domain.com/path

该url(在浏览器中显示)变成:

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>

如何重新编写锚定cms的指令

用.htaccess中选定的查询string参数重写URL

.htacces-SetEnvIf转换为Nginx-fastcgi_param

使用HTTP_HOST来标识以前的主机名称

RewriteBase做什么以及如何使用它?

叹。

这一行:

RewriteCond %{REQUEST_FILENAME} -D

本来应该:

RewriteCond %{REQUEST_FILENAME} -d

不要打扰Mod重写,有一个指令

<Location /some/path> DirectorySlash On SetHandler some-handler </Location>

http://httpd.apache.org/docs/2.2/mod/mod_dir.html

你的意思是

RewriteRule ^(.*)$ $1/ [L]

代替?

我不知道你的方法。 我会尝试类似的

RewriteRule ^/(S+)/?$ /myPHP.PHP?url=$1

我以前用过这个重写,它工作:

RewriteEngine on RewriteCond %{HTTP_HOST} ^domain.com RewriteRule ^(.*)$ http://www.domain.com$1 RewriteRule ^/(S+)/?$ /myPHP.PHP?url=$1

请注意,我没有在第一条规则中包含结尾的斜杠。

另外,我建议你不要依赖.htaccess,除非绝对必要。 这是因为服务器会不断检查.htaccess文件。 改为使用httpd.conf文件意味着apache将只加载一次条件和规则。 至少我被建议这样做是因为这个。

尝试这个。 它会将尾部斜杠添加到没有结尾斜杠的目录请求。

<Ifmodulee mod_rewrite.c> RewriteEngine On #use the directory viewer on directories without an index page RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.*?)/?$ /myPHP.PHP?url=$1/ [QSA,L] </Ifmodulee>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐