Mod-Rewrite - 需要两个不同的重定向规则

时间:2014-09-22 12:55:44

标签: mod-rewrite

我想有两种不同的重定向;如果用户访问我的apache-server上的index.php文件,并在用户输入特定URL后进行一次重定向,则进行一次重定向。

所以我的index.php文件位于我的apache上的“/ client / frontend / questionnaire”文件夹中。如果用户输入“www.test-domain.com”,则应将其重定向到服务器上的index.php文件。

如果用户输入“www.test-domain.com/news”,则应处理第二次重定向。然后他或她应该被重定向到“www.test-domain.com/client/frontend/app/index.php/article-one”。

我设法创建了第一个重写规则:

Options -Indexes
RewriteEngine On
RewriteBase /

RewriteRule ^$ client/frontend/questionnaire/index.php [L]

但我不知道如何创建第二条规则。

非常感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:2)

您必须使用多个RewriteCond + RewriteRule。请参阅mod_rewrite introduction,然后查看reference documentation(全部解释)。

只有RewriteRule实际重写当前请求。要执行此操作,之前的所有RewriteCond必须为true

文档中的样本:

RewriteCond %{REMOTE_ADDR} ^10\.2\.
RewriteRule (.*) http://intranet.example.com$1

RewriteCond %{REMOTE_HOST}  ^host1  [OR]
RewriteCond %{REMOTE_HOST}  ^host2  [OR]
RewriteCond %{REMOTE_HOST}  ^host3
RewriteRule ...some special stuff for any of these hosts...

RewriteCond  %{HTTP_USER_AGENT}  (iPhone|Blackberry|Android)
RewriteRule  ^/$                 /homepage.mobile.html  [L]