【问题标题】:Want to redirect to wildcard subdomain without changing url using .htaccess想要重定向到通配符子域而不使用 .htaccess 更改 url
【发布时间】:2015-02-03 14:29:36
【问题描述】:

我想在不更改 url 的情况下重定向通配符子域。 例如,如果用户键入 subdomain.domain.com,我希望它转到 www.domain.com/subdomain 但不更改原始 url。域和子域都在根文件夹中。

我已经尝试了许多示例来使其正常工作,并提出了以下 htaccess 代码来重定向到通配符子域。此代码会将用户重定向到正确的通配符子域,但生成的 url 不会改变。如果用户输入 subdomain.domain.com,则 url 将更改为 www.domain.com/subdomain。

我正在与 GoDaddy 共享托管计划,并且我有一个专用 IP。这是我的根文件夹的组成:

Root->
domain -> subdomain1, subdomain2 etc
domain2
domain3
domain4
.htaccess
welcome.html

当用户请求创建自己的站点时,使用代码创建子域文件夹。这是我最初在我的 htaccess 中尝试过的。

Options +FollowSymLinks
RewriteEngine on 
RewriteCond %{HTTP_HOST} !^(www)\. [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com [NC]
RewriteRule (.*) http://www.domain.com/%1 [NC]

在尝试了下面的建议答案并输入 subdomain.domain.com 之后,我现在被引导到一个内部 GoDaddy 屏幕,上面写着“非常酷的未来之家”。我需要对我的 htaccess 进行哪些更改,或者我要求的更改是否可行?

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect


    【解决方案1】:

    你试过了吗:

    Options +FollowSymLinks
    RewriteEngine on 
    RewriteCond %{HTTP_HOST} !^(www)\. [NC]
    RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com [NC]
    RewriteCond %1#$1 !^([^#]+)#\1
    RewriteCond %{DOCUMENT_ROOT}/%1/$1 -f [OR]
    RewriteCond %{DOCUMENT_ROOT}/%1/$1 -d
    RewriteRule ^(.*)$ /%1/$1 [L]
    

    【讨论】:

    • 感谢您提供此解决方案。网址保持不变,但网站未加载。我不确定这是否重要,但我正在与 GoDaddy 共享托管计划。网址 www.domain.com/subdomain 工作得很好。
    • URL subdomain.domain.com/subdomain 有效吗?如果不是,那么它们指向同一个根目录,您需要更改配置以使它们指向同一个根目录,或者将其指向子域文件夹
    • 没有。当我尝试 subdomain.domain.com/subdomain 时出现内部服务器错误。但是 www.domain.com/subdomain 仍然有效。
    • 我需要对我的配置或如何指向子域文件夹进行哪些更改?
    • @JonLin [#^] 有一处错别字 -> [^#]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 2015-12-01
    • 1970-01-01
    • 2012-10-13
    • 2017-07-23
    • 1970-01-01
    相关资源
    最近更新 更多