2013-04-24 202 views
1

好的,所以我有像这些demo1.domain.net,demo2.domain.net,demo3.domain.net和所有需要显示子文件夹的内容像这个示例 demo1的网址。 domain.net将显示domain.net/websites/demo1 的内容,我需要这样做的方式,所有的域像$ whatever.domain.net到domain.net/websites/$whatever.domain.net,我已经启用通配符DNS,我似乎无法将它整理出来,请记住我不希望它重定向。.htaccess重写多个网址无重定向

这里是我试过

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

我只是得到domain.net的主页与此有关。

您的帮助将不胜感激。

回答

1

关闭,试试这个:

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

请注意,这只会工作,如果所有的演示* .domain.net指向同一个文档根目录作为主域名(domain.net )。

+0

他们都指向主根文件夹,但这个d oesn't为我工作我得到内部服务器错误 服务器遇到内部错误或配置错误,无法完成您的请求。 – 2013-04-24 08:20:43

+0

这里有人吗?仍然无法得到它的工作:/ – 2013-04-24 08:30:06

+0

@ user2314536忘了添加排除条件 – 2013-04-24 08:33:56

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] 

它将改写$无论 .domain.netdomain.net/websites/ $无论

现在,如果它的假设是$无论 .domain.netdomain.net/websites/ $无论 .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] 
+0

错误的请求 您的浏览器发送了此服务器无法理解的请求。 请求标头字段的大小超出服务器限制。 X-Forwarded-Host /n :( – 2013-04-24 08:43:57

+0

哎呀,我犯了一个巨大的错误,它应该是它将重写$ whatever.domain.net到domain.net/websites/$whatever.domain.net – 2013-04-24 08:49:33

+0

@ user2314536请尝试我的另一个尝试.. – 5ervant 2013-04-24 08:51:19