【问题标题】:htaccess rewrite for wildcard subdomainshtaccess 重写通配符子域
【发布时间】:2019-01-07 14:47:17
【问题描述】:

几小时后,我需要帮助。我尝试重写 url 以使用通配符子域。

我的域将是 *.domain.com - 例如 mytest.domain.com

每个子域都是 www.domain.com/sdom/content/mytest 下的子文件夹

我已经设置了 apache/nginx 服务器。为了测试,我在“内容”文件夹中上传了一个 index.html。

如果我输入 mytest.comin.com,就会显示这个 index.html。所以现在我上传这个文件夹中的 .htaccess 文件,从这里路由到目的地(在这个例子中到“mytest”文件夹)。

我尝试了很多方法,至少这个

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domain\.com$
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$
RewriteRule (.*) /httpdocs/domain/sdom/content/$1/index.html

我调用 mytest.domain.com 但它不会转到子文件夹,而是转到主域。

如果我删除 htaccess 文件,“内容”文件夹的 index.html 将显示。

在浏览器的地址字段中重写 url 后应显示 mytest.domain.com - 而不是子文件夹的新路径等。

我必须做的,这行得通吗?

更新

子域路由到 -> 主文件夹 子域应通过 htaccess 路由到与子域具有相同名称的文件夹

所以我试试htacess

RewriteCond %{HTTP_HOST} ^(.*)\.domain\.tld$
RewriteRule ^$ /subdomainfolder/index.html

【问题讨论】:

    标签: php apache .htaccess


    【解决方案1】:

    对于 .htaccess 文件,您不能。这里mytest.domain.comwww.domain.com 是不同的主机名。所以不可避免地会发生外部重定向。

    如果您希望一台物理服务器运行不同的域,您应该使用虚拟主机:

    <VirtualHost *:80> # Change this to *:443 if you use SSL/TLS
        ServerName mytest.domain.com # Your domain name
        DocumentRoot $SRV_ROOT/httpdocs/domain/sdom/content/mytest/ # assuming $SRV_ROOT is set to root of your server
        <Directory "$SRV_ROOT/httpdocs/domain/sdom/content/mytest/">
            Require all granted # on Apache 2.4
            # Below are instructions for Apache 2.2
            Order Allow,Deny
            Allow from all
        </Directory>
    </VirtualHost>
    

    每次添加子域时都需要重新启动服务器,并且如果您在本地测试,则需要在 /etc/hosts 文件中拥有 DNS 记录或本地记录。

    【讨论】:

    • 可能会忽略 www。我认为这不是我需要的部分,对我来说只有子域的一部分和路由到另一个文件夹是重要的思考
    • 即使 domain.com 和 mytest.domain.com 根据 Apache 是不同的域名。此外,当您使用相对 URL 时,它们是相对于当前虚拟主机的文档根目录,而不是相对于服务器根目录。
    • 对不起,我的脑袋着火了——也许我必须从新开始。我如何将 {mytest}.domain.com 到子域文件夹的路径拆分到另一个文件夹,而不会在浏览器的地址字段中看到它?
    • 你是把子域文件夹放到主域文件夹吗?
    • 它不固定,我可以改变它,我都尝试了,但两种方式都对我来说失败了
    猜你喜欢
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 2012-10-13
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多