我不确定我是否正确地提出了我的问题,但是当我转到www.website.nl时,我被重定向到:www.website.nl.nl,如果我转到了www.website.eu,则被重定向了到www.website.eu.nl
这仅在我添加www时发生。在我的域之前。
为什么会这样?
这就是我想要的:
all http to https
all www to non www
all .eu (in fact all other topleveldomains other than .nl) to .nl
这就是我试图实现的目标:
DirectoryIndex
RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1.nl%{REQUEST_URI} [L,NE,R=301]
我在做什么错了?
答案 0 :(得分:1)
您的条件与www
之后的所有内容都匹配,其中也包括.nl
。您还需要另一个条件来检查域名是否不以.nl
结尾。
您需要用以下规则替换您的规则:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{HTTP_HOST} !\.nl$ [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+?)(?:\.[^.]+)?$ [NC]
RewriteRule ^ https://%1.nl%{REQUEST_URI} [L,NE,R=301]
请确保使用新的浏览器来测试此更改。