当使用网址栏中的www转到我的域时,我得到了一个双层顶级域

时间:2018-07-03 14:21:35

标签: .htaccess server

我不确定我是否正确地提出了我的问题,但是当我转到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]

我在做什么错了?

1 个答案:

答案 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]

请确保使用新的浏览器来测试此更改。