【问题标题】:How to build Rewrite rules to a expecific condition如何为特定条件构建重写规则
【发布时间】:2013-04-20 07:55:33
【问题描述】:
我们想要注册表单的子域。
该项目是一个 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.
现在我只得到一个无限循环。
谢谢
奥斯卡
【问题讨论】:
标签:
apache
url-rewriting
vhosts
url-rewrite-module
【解决方案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”:)
【解决方案2】:
试试这个,我希望它是你需要的
使用重定向匹配
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]