虚拟子域的Mod重写?

时间:2010-03-15 03:08:00

标签: apache .htaccess mod-rewrite

我真的尝试了很多方法,但我没有成功。 我想要一个.Htaccess代码来执行以下操作:

我想重命名:http://www.mydomain.com/media - > http://media.mydomain.com

所以,通过示例而不是调用它:http://www.mydomain.com/media/XXX/picture.jpg 我会打电话给:http://media.mydomain.com/XXX/picture.jpg

谢谢

3 个答案:

答案 0 :(得分:0)

会是这样的:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+)\.mydomain\.com$
RewriteRule (.*) http://www.mydomain.com%1$1 [L,R=301]

答案 1 :(得分:-1)

确保加载了rewrite_module,例如;

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

然后添加以下内容(到您的.htaccess):

RewriteEngine on
RewriteCond %{HTTP_HOST} www.mydomain.com
RewriteRule ^/([^/]*)(.*) http://$1.mydomain.com$2 [L,R]

Cond只会匹配www.mydomain.com。然后规则将使用第一个'/'(将包含在$ 2中)将URL拆分为2,重写和重定向。

答案 2 :(得分:-1)

如果您想要相反(请参阅Roger的评论)并且不需要重定向用户

RewriteEngine on
RewriteCond   %{HTTP_HOST}                 !^www\.mydomain\.com$
RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
RewriteRule   ^([^.]+)\.mydomain\.com(.*)  http://www.mydomain.com/$1$2 [L]

另请参阅此处:http://httpd.apache.org/docs/1.3/misc/rewriteguide.html