1

我知道如何删除 url 后的斜杠,我也知道如何添加它:

# remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/$ /$1 [L,R=301]

# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*[^/]$ /$0/ [L,R=301]

我想要的是删除所有斜杠,以便所有网址的结尾都没有斜杠,但在一种情况下,网址应该包含斜杠。

1.) 所以只有在这种情况下,它才应该添加一个斜杠:

example.com/en -> example.com/en/

2.) 在任何其他情况下,应删除斜线:

example.com/us/ -> example.com/us

example.com/en/product/ -> example.com/en/product

如何使用 .htaccess 规则来做到这一点?

4

1 回答 1

1

这是一个奇怪的问题。
无论如何,您可以将此代码放在您的 htaccess 中(应该在root文件夹中)

RewriteEngine on

# add trailing slash when url is /en
RewriteRule ^en$ /en/ [R=301,L]

# otherwise, remove trailing slash (except for /en/ and existing folders)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/en/$ [NC]
RewriteRule ^(.+)/$ /$1 [R=301,L]
于 2014-08-01T13:53:21.747 回答