Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除htaccess中URL的尾部斜杠_Php_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Php 删除htaccess中URL的尾部斜杠

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:

我将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://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表示无编码。更多详情: