htaccess:我想永久删除我的网址末尾的斜杠

时间:2016-05-26 06:35:44

标签: .htaccess

我知道这不是第一次提出这个问题,但每个案例似乎都特定于特定.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之后和?之前删除该斜杠。

1 个答案:

答案 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]