防止.htacess重定向链,其URL附加斜杠

时间:2016-10-03 11:49:17

标签: .htaccess redirect

我有一个问题,我想知道是否有人可以帮助我。

我希望使用.htaccess创建一个重定向规则,该规则会在一个步骤中将所有以下版本的网页发送到单个目标网址,即我们不能一个接一个地重定向规则。

特别是

http://example.com
https://example.com
http://www.example.com
https://www.example.com

我遇到的问题是所有内部页面都需要附加一个尾部斜杠。

目前我只能通过这样的重定向链接来实现这一点:

https://example.com/example

然后会去:

https://www.example.com/example

最后去:

https://www.example.com/example/

我有一个开发人员把东西放在一起,但这似乎导致循环:

// Don’t correct the path when it ends in a slash
example.com^\/(.*)\/$ to https://www.example.com/$1

// Add the slash if it doesn’t end with one
example.com^\/(.*)(?<!\/)$ to https://www.example.com/$1/

我自己不是开发人员,但希望有人可以帮我正确的正则表达式?我真的很感激。

1 个答案:

答案 0 :(得分:0)

您可以在.htaccess

中使用
RewriteEngine on

# Pages without . and ev. /
RewriteCond %{HTTP_HOST} !^www\. [OR,NC]
RewriteCond %{HTTPS} off 
RewriteRule ^([^.]+?)/?$ https://www.example.com/$1/ [R=301,L]

# Others
RewriteCond %{HTTP_HOST} !^www\. [OR,NC]
RewriteCond %{HTTPS} off 
RewriteRule ^ https://www.example.com%{REQUEST_URI} [NE,R=301,L]