【问题标题】:How can I correctly catch-all subdomains (and redirect) with .htaccess?如何使用 .htaccess 正确捕获所有子域(和重定向)?
【发布时间】:2011-07-28 22:27:26
【问题描述】:

我的服务器上设置了通配符子域 (*.domain.com)。我现在想使用 .htaccess 将所有 *.domain.com 请求重定向到我服务器上的脚本 main.php。我搜索了有助于完成重定向的代码,但我还没有完全成功。我发现的最佳工作代码是:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC] 
RewriteRule ^(.*)$ http://domain.com/%1 [QSA,R=301,L]

但是,www.subdomain.domain.com 被重定向到 domain.com/www.subdomain 而不是 domain.com/subdomain。如何在代码中解决这个问题?有更好的方法吗?

提前致谢!

【问题讨论】:

    标签: apache .htaccess redirect subdomain catch-all


    【解决方案1】:

    你能试试这个重写规则吗:

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^(www\.)?(.+)\.domain\.com$ [NC] 
    RewriteRule ^(.*)$ http://domain.com/%2 [R=301,L]
    

    【讨论】:

    • @tundoopani:在这样的 URL 中,http://stackoverflow.com/questions REQUEST_URI 是 questions 而 HTTP_HOST 是 stackoverflow.com
    • 有没有办法制作www.可选?
    • @tundoopani:我编辑了我的答案以制作 www。可选,请参见上文。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-23
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 2019-12-20
    • 2013-08-10
    • 1970-01-01
    相关资源
    最近更新 更多