htaccess重写通配符子域

时间:2019-01-07 14:47:18

标签: php apache .htaccess

几个小时后,我需要帮助。我尝试重写使用通配符子域的网址。

我的域为* .domain.com-例如mytest.domain.com

对于每个子域,www.domain.com / sdom / content / mytest下都是一个子文件夹

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

如果我键入mytest.comain.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。

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

我必须做的是可行的?

更新

子域路由到->主文件夹 子域应通过htaccess路由到与该子域同名的文件夹

所以我很努力

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

1 个答案:

答案 0 :(得分:0)

使用/* Extra Small Devices, Phones */ @media only screen and (min-width : 480px) { #content { padding-left: 0; } } 文件无法实现。 .htaccessmytest.domain.com在这里是不同的主机名。因此,不可避免地会发生外部重定向。

如果要由一台物理服务器运行不同的域,则应使用虚拟主机:

www.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> 文件中也要有DNS记录或本地记录。