Htaccess重写删除尾部斜杠

时间:2016-07-25 07:09:36

标签: php .htaccess

Htaccess会以某种方式自动删除网址末尾的所有尾部斜杠,只保留一个斜杠。

例如http://localhost/api/param1///变为http://localhost/api/param1/

你能否告诉我为什么会发生这种情况以及如何摆脱这种情况? (。*)应该匹配一切吗?但事实并非如此。就像我说的那样,如果我转到http://localhost/api/param1///$_GET['url']应为param1///,但它是param1/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

1 个答案:

答案 0 :(得分:3)

Apache会自动将多个斜杠删除为RewriteRule模式中的单个斜杠。

如果要捕获多个斜杠,请使用RewriteCond代替:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/(.*)$
RewriteRule ^ index.php?url=%1 [QSA,L]