.htaccess重写多个网址而不重定向

时间:2013-04-24 08:07:43

标签: .htaccess mod-rewrite url-rewriting seo

好的,所以我有像这样的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,我似乎无法将其解析出来,请保持记住,我不希望它重定向。

这是我试过的

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

我只是得到了domain.net的主页。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分: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 )相同的文档根目录时,此方法才有效。< / p>

答案 1 :(得分: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.net 进入 domain.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]