我知道这不是第一次提出这个问题,但每个案例似乎都特定于特定.htaccess文件的上下文,到目前为止我很难理解这个问题。
我首先在这里发布我的.htaccess文件:
<Files .htaccess>
order allow,deny
deny from all
</Files>
ErrorDocument 404 http://mroberts.design/404
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ %1 [L,R=301,NC]
RewriteCond %{HTTP_HOST} ^www\.mroberts\.design [NC]
RewriteRule ^(.*)$ http://mroberts.design$1 [L,R=301,NC]
RewriteCond %{HTTP_HOST} ^fcw\.mroberts\.design$
RewriteRule ^ - [L]
RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?page=$1 [NC]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ index.php?category=$1&page=$2 [NC]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ index.php?category=$1&subcat=$2&page=$3 [L,NC]
a)我想在网址末尾删除最后的尾部斜杠,
b),我想在任何查询字符串之前删除尾部斜杠。
我现在设置的方式,我不知道我在哪里允许有拖尾斜线?
非常感谢帮助。
编辑:
实际上我唯一关心的是删除尾随斜杠的部分是^fcw\.mroberts\.design$
- 只有?page=service
等查询字符串,所以网址最终看起来像mroberts.design/?page=service
,我只想在design
之后和?
之前删除该斜杠。
答案 0 :(得分:1)
要删除尾部斜杠,请使用:
RewriteEngine on
RewriteRule (.+)/$ /example/$1 [L,R=301]
还有两个选择:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
如果位于目录中:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [R=301,L]