如何将重定向链减少到只有一个重定向?

时间:2017-08-28 12:45:45

标签: .htaccess mod-rewrite

我总是在一次重定向中重定向到https://www.example.ch 。 现在,我多次重定向,最终使用我的网址,同时使用我的网址别名。重定向链如下所示:

Status Code URL IP  Page Type   Redirect Type   Redirect URL    
302 http://www.xn--exmple-icb.ch/   5.9.75.43   server_redirect temporary   https://xn--example-icb.ch/ 
302 https://xn--exmple-icb.ch/  5.9.75.43   server_redirect temporary   http://example.ch/ 
302 http://example.ch/  5.9.75.43   server_redirect temporary   https://example.ch/ 
301 https://example.ch/ 5.9.75.43   server_redirect permanent   https://www.example.ch/ 
200 https://www.example.ch/ 5.9.75.43   normal  none    none 

正如您可能从示例中猜到的那样,我有2个注册域名。一个是example.ch,另一个是前ä mple.ch,所有内容都应该重定向到https:// www。 example.ch只需一步。

如何在我的.htaccess中配置它? 我试着这样做

  RewriteCond %{HTTPS} off [OR]
  RewriteCond %{HTTP_HOST} !^www\.example\.ch* [OR]
  RewriteCond %{HTTP_HOST} !^www\.ex%C3%A4mple\.ch* [OR]
  RewriteRule ^(.*)$ https://www.example.ch/$1 [L,R=301]

但我认为我使用[OR]错误和/或不包含https://exämple.ch的重写条件

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我认为您可能会因为您自己注意到RewriteCond而遇到问题。

在伪代码中,您说要运行RewriteRule if:

请求不是https,或者不是www.example.ch,或者不是www.exämple.ch。

这意味着重定向不仅会在www.exämple.ch上触发,也会在www.example.ch上触发。

请尝试此设置:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.ch*
RewriteRule ^(.*)$ https://www.example.ch/$1 [L,R=301]

在这里演示:http://htaccess.mwl.be?share=6d58df20-5e24-5c58-8ea8-f3bc1d57fda5