URL重写会删除网址结尾

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL重写会删除网址结尾相关的知识,希望对你有一定的参考价值。

我一直在尝试用htaccess重写一个特定的文件,/ u.php / example到/ u / example。 / example部分我将通过php url解析得到并使用。

所以,我读到的另一个问题建议使用以下代码

RewriteCond %{THE_REQUEST} /(u|a).php [NC]
RewriteRule ^ /%1 [L,R]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /$1.php [L]

但是,这不会在重写时保留/u.php/example中的/ example,如果只输入/ u / example,则会导致500错误。

有没有解决这个问题?可能是什么问题呢?我无法在Stack上找到解决方案。

答案

您需要从URI捕获并重定向/example部分

RewriteCond %{THE_REQUEST} /(u|a).php/([^s]*) [NC]
RewriteRule ^ /%1/%2 [L,R]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/(.*)?$ /$1.php/$2 [L]

以上是关于URL重写会删除网址结尾的主要内容,如果未能解决你的问题,请参考以下文章

nginx 重写URL尾部斜杠

如果文件名减去ext,则覆盖.htaccess url重写行为。与网址相同

Apache 重写:如何避免在省略 url 结尾斜杠时显示 url 参数?

网址重写 - 这会导致安全问题吗?

htaccess:从以.xml / only结尾的URL中删除尾部斜杠

PHP .htaccess重写网址