Mod_rewrite显示来自通配符域的重定向

时间:2010-08-22 06:59:58

标签: .htaccess mod-rewrite wildcard-subdomain

我很想把mod_rewrite踢到路边。谈论“不能与他人合作”。有没有任何女巫主可以帮助我?

我设置了通配符dns来识别用户。我想从:

http://username.domain.com/foo/bar

为:

https://www.domain.com/qux/waldo/username/foo/bar

这可能吗?

我正在使用codeigniter进行开发,它已经在.htaccess中拥有了自己的mod_rewrite指令,以去掉index.php。

这就是我所拥有的:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.idseal\.local.*$
RewriteRule (.*) /site/assign/$1

#Removes access to the system folder by users.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

1 个答案:

答案 0 :(得分:0)

第一行验证我们是否在主域上,如果有www或者没有www,则第二行将匹配,如果有一个www,它将被保存在%1上,因此如果没有,则不会发生变化,数据将进入%2并将重写正常。

我并非100%确定这会满足您的需求,但请尝试并报告,我会尽力帮助您。

RewriteEngine on

RewriteCond %{http_host} !^www.domain.com [NC]
RewriteCond %{http_host} ^(www.)?([^.]+).domain.com [NC]
RewriteRule (.*) https://www.domain.com/qux/waldo/%2/$1