【问题标题】:Redirect or rewrite any subdomain to www leaving the rest of URL as it is将任何子域重定向或重写为 www 保留 URL 的其余部分不变
【发布时间】:2018-08-03 21:06:34
【问题描述】:

我有:

subdomainaaa.mydomain.com
subdomainaaa.mydomain.com/anything/whatever
subdomainbbb.mydomain.com
subdomainbbb.mydomain.com/anything/whatever
...
...
anysubdomain.mydomain.com ...

实际上是通配符子域。

我需要重写规则来完成这一切:

www.mydoamin.com/and_whatever_goes_afterwords

基本上,如何将无数子域重定向到 www,而将 .com/ 之后的所有内容保持原样。

我必须做某种永久重定向,因为我不能丢失旧链接,只是将它们重定向到带有 www 而不是子域的新链接

拜托,我在整个互联网上都在寻找这个,我只得到了一些我不知道如何组合的正则表达式,以及我在 .htaccess 文件中混合的任何内容 - 我得到了服务器错误。或者,我设法将任何内容重定向到主页 www.mydomain.com。我希望我很清楚。我是一个正则表达式新手(想要),所以,请给我整个块放入 .htaccess。 或者,如果您认为我做错了什么 - 给我建议如何实现我的目标。 非常感谢大家!!

【问题讨论】:

    标签: regex .htaccess url mod-rewrite wildcard-subdomain


    【解决方案1】:

    您可以在站点根目录 .htaccess 中使用此规则:

    RewriteEngine On
    
    # add www and keep same URI
    RewriteCond %{HTTP_HOST} ^(?!www\.)[^.]+\.(mydomain\.com)$ [NC]
    RewriteRule ^ http://www.%1%{REQUEST_URI} [R=301,L,NE]
    

    【讨论】:

    • 谢谢!但是,这需要一点改变,拜托。这使得 'subdomain.mydomain.com/something' 变成 'www.subdomain.mydomain.com' 和 no /something,所以它需要 2 处修改才能成为 - 'www.mydomain.com/something'没有.subdomain。在 www 和 mydomain 之间。非常感谢@anubhava!!
    • 这会在整个 url 前面添加 www,我需要 www 来替换子域:这使得 sub.domain.com 变成了 www.sub.domain.com - 我需要 www.domain.com。我使用了新的浏览器,清除了缓存等等,把它放在了 htaccess 的顶部。谢谢@anubhava
    • 太棒了!按我的意愿工作!非常感谢@anubhava!
    猜你喜欢
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    相关资源
    最近更新 更多