如何为特定条件构建重写规则

时间:2013-04-26 07:55:32

标签: apache url-rewriting vhosts url-rewrite-module

我们想要一个子域到注册表。

该项目是Code Igniter网站。

我们的想法是使用register.domain.com

我正在尝试构建一个重写规则来实现这个目标。

If the domain is 
    register.domain.com/whatever 
go to 
    register.domain.com/register/form
if the domain is 
    register.domain.com/register/form
do nothing.

现在我只得到一个无限循环。

感谢

的奥斯卡

2 个答案:

答案 0 :(得分:1)

我得到了简单的方法。

 RewriteEngine On
 RewriteCond %{REQUEST_URI} ^register.domain.com$ [NC]
 RewriteCond %{REQUEST_URI} !^register.domain.com/register/form [NC]
 RewriteRule ^(.*)$ http://register.domain.com/register/form r [L,R=301]

!是“ISNOT”:)

答案 1 :(得分:0)

试试这个,我希望这是你需要的

使用RedirectMatch

RedirectMatch ^/(.*)/ http://new.example.com/docs/$1

编辑:

我看到你需要一个条件:

 <If "%{REQUEST_URI} != '/register/login'">
  RedirectMatch ^/(.*)/ http://new.example.com/docs/$1
 </If>

最后:

RewriteBase /
RewriteEngine On
RewriteCond  %{REQUEST_URI} !^/register/
RewriteCond  %{REQUEST_URI} ^/.+

RewriteRule  ^(.*)/ /register/ [R,L]