我目前在example.com/directory/上设置了一个网站。 / directory /设置为根据子域显示不同的内容,该部分工作正常。我编辑httpd.conf文件时无法正常工作。
显然我只能为sub.example.com设置我的A记录,指向example.com而不是example.com/directory/,所以我在我的httpd中设置了一些规则来解决这个问题,但他们似乎没有工作。这是我到目前为止所得到的:
RewriteCond %{HTTP_HOST} ^sub1\.example\.com$ [NC]
RewriteRule ^((?!directory).*)$ /directory/$1 [NC,L]
RewriteCond %{HTTP_HOST} ^sub2\.example\.com$ [NC]
RewriteRule ^((?!directory).*)$ /directory/$1 [NC,L]
似乎正在发生的事情是这些规则只是将每个子域指向example.com/directory并完全删除子域。关于我需要在这里改变什么,我有点迷失,我对Apache不太熟悉。
我知道这应该很简单,但我似乎无法找到任何直截了当的文件供我理解,是否有人有任何指示?
答案 0 :(得分:1)
您应该为每个子域使用单独的子目录,如下所示:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sub1\.example\.com$ [NC]
RewriteRule ^((?!folder1/).*)$ folder1/$1 [NC,L]
RewriteCond %{HTTP_HOST} ^sub2\.example\.com$ [NC]
RewriteRule ^((?!folder2/).*)$ folder2/$1 [NC,L]
其中folder1
是sub1
域的子目录,folder2
是sub2
域的子目录。