我有一个问题,我想知道是否有人可以帮助我。
我希望使用.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/
我自己不是开发人员,但希望有人可以帮我正确的正则表达式?我真的很感激。
答案 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]