htaccess问题和重写

时间:2012-05-27 22:46:46

标签: .htaccess rewrite

这是我目前的脚本......我需要允许“sub.domain.com/register/USER”

目前,我有一个重写“sub.domain.com”的cond,它指向“sub.domain.com/login”

我做错了什么?

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{HTTP_HOST}  !^www.domain.com$
RewriteCond %{HTTP_HOST}   ^(.+).domain.com$
RewriteRule ^register(.*) https://%1.domain.com/register$1 [L,R=302,QSA]

RewriteCond %{HTTP_HOST}   ^(.+).domain.com$
RewriteRule ^$ https://%1.domain.com/login/ [L,R=302]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

截至更新时,我在/ register / USER ..

中有一个重定向循环

1 个答案:

答案 0 :(得分:1)

用这个替换你的第一套规则:

RewriteCond %{HTTP_HOST}  !^www.domain.com$
RewriteCond %{HTTP_HOST}   ^(.+).domain.com$
RewriteRule ^register(.*) - [L,R=302,QSA]

编辑:也许更好的解决方案是仅在URI不是/ register / user时重写。因此,摆脱上述规则,并将其下面的规则更改为:

RewriteCond %{HTTP_HOST}  !^www.domain.com$
RewriteCond %{HTTP_HOST}   ^(.+).domain.com$
RewriteCond %{REQUEST_URI} !^/register/?.*
RewriteRule ^(.*)$ https://%1.domain.com/login/ [L,R=302]