.htaccess 将任何域重定向到特定域之外的域,规则
.htaccess redirect any domain to a domain apart from a specific domain, rule
我有两个域指向一个 webroot,需要强制所有流量流向其中一个域。
但是,这意味着到其他域的所有流量都无法到达它。
下面是我当前的规则
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.co\.uk$ [NC]
RewriteRule ^(.*)$ https://www.example.co.uk/ [L,R=301]
我要允许通过的第二个域是 edit.example.co.uk
所以,我试过了:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.co\.uk$ [NC]
RewriteCond %{HTTP_HOST} !^edit\.example\.co\.uk$ [NC]
RewriteRule ^(.*)$ https://www.example.co.uk/ [L,R=301]
但没有快乐,然后我尝试了该主题的变体,但没有成功。
我想也许在概念上,我正在努力处理这些处理的顺序?
非常感谢收到任何见解!
您应该使用 2 种不同的重定向规则:
RewriteEngine On
# add https and www to example.co.uk in same rule
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(example\.co\.uk)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]
# add https to edit.example.co.uk
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^edit\. [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
确保在测试这些规则之前完全清除浏览器缓存。
我有两个域指向一个 webroot,需要强制所有流量流向其中一个域。
但是,这意味着到其他域的所有流量都无法到达它。
下面是我当前的规则
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.co\.uk$ [NC]
RewriteRule ^(.*)$ https://www.example.co.uk/ [L,R=301]
我要允许通过的第二个域是 edit.example.co.uk
所以,我试过了:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.co\.uk$ [NC]
RewriteCond %{HTTP_HOST} !^edit\.example\.co\.uk$ [NC]
RewriteRule ^(.*)$ https://www.example.co.uk/ [L,R=301]
但没有快乐,然后我尝试了该主题的变体,但没有成功。
我想也许在概念上,我正在努力处理这些处理的顺序?
非常感谢收到任何见解!
您应该使用 2 种不同的重定向规则:
RewriteEngine On
# add https and www to example.co.uk in same rule
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(example\.co\.uk)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]
# add https to edit.example.co.uk
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^edit\. [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
确保在测试这些规则之前完全清除浏览器缓存。