我目前有mod_rewrite,我找到的代码将所有请求重定向到没有www的相同网址。
我现在要做的是配置Apache mod_rewrite以执行以下操作,而不会浪费任何操作/其他重定向。
http:// to https://
http://www. to https://
我不熟悉它,但在伪代码中,http(s)://(www.)domain.com
到https://domain.com
仅针对顶级网址,不包括子域名。
答案 0 :(得分:2)
两种情况都需要一条规则:
将此代码放入DOCUMENT_ROOT/.htaccess
文件中:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://domain.com%{REQUEST_URI} [NE,R=301,L]
答案 1 :(得分:2)
是的,有一种方法可以将这些操作合并为一个规则:
RewriteCond %{HTTP_HOST} !=example.com [OR]
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) https://example.com/$1
答案 2 :(得分:0)
这个对我有用。我尝试了上面的那个,但它在旧浏览器上创建了一个重定向循环。
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
RewriteCond %{SERVER_PORT} ^443$
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]