Php 删除htaccess中URL的尾部斜杠
我将htaccess配置为与我用PHP编写的URL路由器一起工作。我正在尝试删除除根URL之外的URL中的尾随斜杠。我的htaccess文件如下所示:Php 删除htaccess中URL的尾部斜杠,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我将htaccess配置为与我用PHP编写的URL路由器一起工作。我正在尝试删除除根URL之外的URL中的尾随斜杠。我的htaccess文件如下所示: Options -MultiViews RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)$ index.php?uri=$1 [QSA,L] http:
Options -MultiViews
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?uri=$1 [QSA,L]
http://my-site-domain.com/login
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/?$ /$1 [R=302,NE,L]
我的URL如下所示:
Options -MultiViews
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?uri=$1 [QSA,L]
http://my-site-domain.com/login
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/?$ /$1 [R=302,NE,L]
这很好,但是一个拖尾的斜杠导致了一些问题。(例如)
知道如何删除传入参数的尾部斜杠而不是根URL的尾部斜杠吗
谢谢,
-Paul在
上重写引擎的下方插入此规则:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/$ /$1 [R=302,NE,L]
对于那些仍然遇到这个问题的人,我解决了我的问题,在美元符号前的斜杠后面加了一个问号,如下所示:
Options -MultiViews
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?uri=$1 [QSA,L]
http://my-site-domain.com/login
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/?$ /$1 [R=302,NE,L]
这就是诀窍……我假设R是重定向,但302、NE和L是什么?302表示重定向中使用的http状态代码=302。L表示最后一个,NE表示无编码。更多详情: