我很想把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>
答案 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