2014-09-22 54 views
0

我想有兩個不同的重定向;如果用戶訪問我的apache服務器上的index.php文件,並且在用戶輸入特定url後重定向一次,則需要重定向。Mod重寫 - 需要兩個不同的重定向規則

所以我的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] 

但我不知道如何創建第二條規則。

任何幫助非常感謝。

謝謝!

回答

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] 
+0

可否請你給我多一點的信息? – enne87 2014-09-22 13:26:35

+0

我完成了答案,並建議您閱讀文檔。 – 2014-09-22 13:32:51

+0

感謝Nicolas的幫助。我試了一下像下面這樣:。 選項-Indexes RewriteEngine敘述在 RewriteBase/ 的RewriteCond%{HTTP_HOST} * nmo-online.com $ 重寫規則^ $客戶端/前端/問卷/ index.php文件[L] RewriteCond%{HTTP_REFERER}(。*)weather(。*) RewriteRule^$ client/frontend/app/index.php [L]條件有效,但第二條沒有。 – enne87 2014-09-22 14:47:13