1

好的,所以我有这些 demo1.domain.net、demo2.domain.net、demo3.domain.net 之类的 url,并且都需要显示子文件夹的内容,例如这个示例 demo1.domain.net 将显示 domain.net 的内容/websites/demo1 我需要以将所有域(如 $whatever.domain.net)转换为 domain.net/websites/$whatever.domain.net 的方式进行操作,我已经启用了通配符 dns,但我似乎无法解决它出来,请记住我不希望它重定向。

这是我尝试过的

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.domain\.net.*$
RewriteRule /websites/$1 [L]

我只是用这个获得了 domain.net 的主页。

对你的帮助表示感谢。

4

2 回答 2

1

关闭,试试这个:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/websites/
RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+\.domain\.net.*)$ [NC]
RewriteRule ^(.*)$ /websites/%2/$1 [L]

请注意,这仅在所有demo*.domain.net指向与主域( domain.net )相同的文档根目录时才有效。

于 2013-04-24T08:18:04.797 回答
0

我想,我可以做到这一点!您能否再次尝试这些.htaccess指令:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.net$
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.net$
RewriteRule ^/?$ http://domain.net/websites/%2 [P]

它会将$whatever .domain.net重写为domain.net/websites/ $whatever

现在,如果假设是$whatever .domain.netdomain.net/websites/ $whatever .domain.net那么你可以试试这个:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.net$
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.net$
RewriteRule ^/?$ http://domain.net/websites/%2.domain.net [P]

或者也许下面的这段代码是你将来想要的:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.net$
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.net$
RewriteRule ^(.*)$ http://domain.net/websites/%2.domain.net/$1 [P]
于 2013-04-24T08:37:52.910 回答