我有一个像这样的网址
https://example.com /index.php/Products/Description/nikon-d300/Id-9在移除index.php之后我有了这个
https://example.com //Products/Description/nikon-d300/Id-9如你所见,我有//。如何移除一个?
谢谢。
<IfModule mod_rewrite.c>
RewriteEngine On
DirectorySlash Off
# Remove WWW
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=302,L]
# Remove Trailing Slashes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^ %1 [R=302,L]
# remove index.php
RewriteCond %{THE_REQUEST} /index\.php[\s?/] [NC]
RewriteRule ^(.*?)index\.php(/.*)?/?$ /$1$2 [L,R=301,NC,NE]
# Reroute to index.php
RewriteCond $1 !^(index\.php)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?cURL=/$1 [L,QSA]
</IfModule>发布于 2022-07-10 17:16:35
正是由于您的remove index.php规则,添加了一个额外的/来使其成为//。将该规则改为:
# remove index.php
RewriteCond %{THE_REQUEST} /index\.php[\s?/] [NC]
RewriteCond %{REQUEST_URI} ^(.*/)?index\.php(?:/(.*))?/?$ [NC]
RewriteRule ^ %1%2 [L,R=301,NE]并确保在测试此更改之前清除浏览器缓存。
https://stackoverflow.com/questions/72929965
复制相似问题