通过 htaccess 访问特定域时强制用户访问单个站点

Force user to a single site when visiting over a specific domain via htaccess

我试图强制通过特定域 example-page.com 访问的用户总是被重定向到 /countdown

我的方法如下:

RewriteCond %{HTTP_HOST} ^example-page\.com [NC, OR]
RewriteCond %{HTTP_HOST} ^www.example-page\.com [NC]
RewriteCond %{REQUEST_URI} !^/countdown
RewriteRule ^(.*)$ https://www.example-page.com/countdown [L,R=301]

但出于某种原因,我总是收到“太多重定向错误”。 我被重定向到 https://www.example-page.com/countdown 但不知何故 RewriteCond 再次被触发但它不应该因为 RewriteCond %{REQUEST_URI} !^/countdown.

您能否尝试使用您展示的示例进行以下操作。请将这些规则放在您的 htaccess 文件的顶部。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(?:www\.)?example-page\.com [NC]
RewriteCond %{REQUEST_URI} !^/countdown
RewriteRule ^ https://www.example-page.com/countdown [L,R=301]

还有为什么会出现错误,因为 NCOR(NC, OR) 之间有 space,这会导致 500 内部错误。

您可以试试这条规则:

RewriteCond %{HTTP_HOST} ^(?:www\.)?example-page\.com [NC]
RewriteCond %{THE_REQUEST} !\s/countdown [NC]
RewriteRule ^ https://www.example-page.com/countdown [L,R=301]

确保在清除浏览器缓存后进行测试。