0

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

目前,我有一个“sub.domain.com”的重写条件,它指向“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.. 中有一个重定向循环

4

1 回答 1

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]
于 2012-05-27T22:50:19.833 回答