2015-06-25 70 views
1

我想要的一切,除了重定向子文件夾adminapiadmin,所以:國防部改寫一切,除了特定的子文件夾

/   - redirects to /admin 
/some-url - redirects to /admin 
/admin  - doesn't redirect 
/admin/1 - doesn't redirect 
/api  - doesn't redirect 
/api/v1/etc - doesn't redirect 

但我已經走到這一步,不能正確重定向。這裏是我的mod_rewrite:

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{REQUEST_URI} !^/(admin|api) 
    RewriteRule^/admin [R,L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_URI} !=/favicon.ico 
    RewriteRule^./index.php [L] 

</IfModule> 

回答

0

您應該使用THE_REQUEST變量,而不是作爲REQUEST_URI改變REQUEST_URI其值是由於去年規則,然後在第一個規則的mod_rewrite改寫條件下一次迭代返回true。

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{THE_REQUEST} !/(admin|api) [NC] 
    RewriteRule^/admin [R,L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_URI} !=/favicon.ico 
    RewriteRule^./index.php [L] 

</IfModule>