如何重定向 .htaccess 中的子域
How can I redirect subdomain in .htaccess
您好,如果用户通过“https://darkzin.cz/”输入到“https://www.darkzin.cz/”,我需要重定向到我的网页。
为此,有人帮助我使用“.htaccess”代码:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) https://www.darkzin.cz/ [L,R=301,NE]
有效,但现在我需要子域 (https://pamatnicek.darkzin.cz/)。这是我的问题。
- 如果我使用这个“三行”,则可以“将没有 www 的重定向到有 www 的重定向”,但我无法访问子域。子域 url 被重定向到主页。
- 如果我删除这“三行”,我就可以进入子域,但我的网站可以“使用 www”和“不使用 www”,为此我有重复的 urls。
我该如何解决这个问题?
不要对域名进行硬编码,而是使用 RewriteCond %{HTTP_HOST}
从 URL 本身匹配它,并稍后在规则中使用反向引用:
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]
%1
是我们在 RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
中从捕获组捕获并稍后在 RewriteRule
中使用 %1
的值。
您好,如果用户通过“https://darkzin.cz/”输入到“https://www.darkzin.cz/”,我需要重定向到我的网页。 为此,有人帮助我使用“.htaccess”代码:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) https://www.darkzin.cz/ [L,R=301,NE]
有效,但现在我需要子域 (https://pamatnicek.darkzin.cz/)。这是我的问题。
- 如果我使用这个“三行”,则可以“将没有 www 的重定向到有 www 的重定向”,但我无法访问子域。子域 url 被重定向到主页。
- 如果我删除这“三行”,我就可以进入子域,但我的网站可以“使用 www”和“不使用 www”,为此我有重复的 urls。
我该如何解决这个问题?
不要对域名进行硬编码,而是使用 RewriteCond %{HTTP_HOST}
从 URL 本身匹配它,并稍后在规则中使用反向引用:
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]
%1
是我们在 RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
中从捕获组捕获并稍后在 RewriteRule
中使用 %1
的值。