【问题标题】:Force www. even with subdomain not working without /强制 www。即使没有 / 子域也无法工作
【发布时间】:2020-04-29 09:47:05
【问题描述】:

我有一个站点 example.com 和一个子域,我想要以下重定向:

subdomain.example.com -> www.subdomain.example.com

example.com -> www.example.com

我使用下面的代码

RewriteEngine On

# Force www. always and SSL
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301, L]

# Force SSL if already www.
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301, L]

现在的问题是 subdomain.example.com 不会重定向,但 subdomain.example.com/

我在访问 example.com 时也遇到了服务器错误,尽管它确实重定向到 www。正确。

这些重定向的目的是让我可以在根文件夹中的同一个 .htaccess 文件中更轻松地将子域重定向到 subdomain.com,我在一台服务器上有多个域。

【问题讨论】:

  • 尝试清除浏览器缓存。

标签: apache .htaccess


【解决方案1】:

我认为您可以像这样将指令组合在一起:

RewriteEngine On

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.*)$  [NC]
RewriteRule (.*) https://www.%1/$1 [R=301,L]

=> 检查HTTPS是否关闭,或者域名是否不以www开头,然后重定向到https://www.whatever

【讨论】:

    猜你喜欢
    • 2012-04-25
    • 2015-01-15
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 2021-07-24
    • 1970-01-01
    相关资源
    最近更新 更多