2011-04-26 47 views
0

這是我htaccess文件此刻mod_rewrite的 - 做兩個重定向 - 如果第一個這麼想的比賽做第二

RewriteEngine On 

# Only redirect if file dosen't exist. 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^admin/(.*)  /admin.php   
RewriteRule ^([^/])   /index.php   [L] 

我沒有任何想法,爲什麼這是行不通的。我想我終於抓住了mod_rewrite,然後它完成了一些完全意想不到的事情。

基本上,如果URL是domain.com/admin/something,那麼我希望它重定向到domain.com/admin.php(包括如果它只是/管理員)。但是,如果它的任何其他我希望它重定向到index.php。

任何想法如何實現這一目標?

謝謝。

回答

2
RewriteEngine On 

# No redirect, if file or directory exists 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule .* - [L] 

RewriteRule ^admin/(.*)  /admin.php   [L] 
RewriteRule ^(.*)$   /index.php   [L] 

Didnt test it。有趣的部分是管理規則後面的L-Flag,因爲它阻止了下一個規則的匹配。

我更改了RewriteCond-陳述,因爲它們只適用於下一個RewriteRule和(在您的情況下)不影響規則到index.php

+2

這將工作,只需要刪除第二個RewriteRule上的前導'/'。 – clmarquart 2011-04-26 13:48:29

+0

啊哈! :) clmarquart你解決了它! :) 謝謝。 – 2011-04-26 13:57:38

+0

我已經編輯了clmarquart的評論的答案incase其他人在未來遇到這個問題 – 2011-04-26 13:58:41

相關問題