【问题标题】:Redirecting non-www to www, but keeping other sub-domains intact将非 www 重定向到 www,但保持其他子域不变
【发布时间】:2017-01-31 00:16:48
【问题描述】:

我有 5 个不同域名的网页。他们每个人都使用相同的目录和相同的.htaccess 文件。我已将 non www 网址重定向到 www 并使用以下代码:

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

现在我想继续将非 www 重定向到 www,但我也想保留其他没有 www 的子域。例如: domain1.com 应该重定向到 www.domain1.comsubdomain1.domain1.com 仍应为 subdomain1.domain1.com 并且不应重定向到 www.subdomain1.domain1.com

请记住,我在同一个目录中托管了 5 个网页,而且还会有更多。我不想每次添加页面时都更改.htaccess 文件。

我不想弄乱我的 .htaccess 文件,所以我需要你的帮助!

PS:有没有可能考虑到https。 https://domain.comhttps://www.domain.com http://domain.comhttp://www.domain.com https://sub.domain.comhttps://sub.domain.com http://sub.domain.comhttp://sub.domain.com

提前感谢您的回答!

【问题讨论】:

    标签: linux apache .htaccess redirect mod-rewrite


    【解决方案1】:

    只需将您的规则定位到主域:

    RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ [NC]
    RewriteCond %{HTTPS}s on(s)|
    RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    

    RewriteCond %{HTTPS}s on(s)|%1 用于在目标 URL 中维护http/https

    确保在测试此更改时清除浏览器缓存。

    【讨论】:

    • 这仅适用于一个域。是否可以使其适用于分配给同一目录的每个域?
    猜你喜欢
    • 1970-01-01
    • 2014-06-02
    • 2014-02-23
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 2020-11-09
    相关资源
    最近更新 更多