2012-08-12 47 views
0

我的.htaccess文件alows訪問真正文件服務器上的文件夾&。爲別的,它會重定向到/index.phpapp文件夾在這種情況下,它會重定向到指定/app/index.php除外。我想添加一個名爲appbeta一個第二文件夾將重定向到/appbeta/index.php。我應該如何修改我的.htaccess來添加這個額外的異常?給htaccess添加另一個例外?

SetEnv APPLICATION_ENV development 

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(?!app)(.+)$ /index.php?u=$1 [NC,QSA,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^app(.+)$ /app/index.php?u=$1 [NC,QSA,L] 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

回答

1

我不是很確定以下重寫做什麼:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(?!app)(.+)$ /index.php?u=$1 [NC,QSA,L] 

但是,如果您當前的.htaccess工作,只要你想,我會嘗試哪些權利之前提出改寫爲/appbeta以下爲/app重寫:

SetEnv APPLICATION_ENV development 

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(?!app)(.+)$ /index.php?u=$1 [NC,QSA,L] 

# rewrite /addbeta to /appbeta/index.php ... 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^appbeta(.*)$ /appbeta/index.php?u=$1 [NC,QSA,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^app(.+)$ /app/index.php?u=$1 [NC,QSA,L] 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

注:沒有新的問題,在註釋中開始提到,解決上述(CH ange ^appbeta(.+)$ to ^appbeta(.*)$

+0

第一次重寫說使用'/index.php ...'*除非* url匹配* app * ....至於你的建議,我試過了,但沒有奏效。它繼續重定向到應用程序。 – 2012-08-12 17:30:10

+0

啊,然後讓我們把新的/ appbeta放在我不明白的規則之前。我會更新答案中的順序。 – HeatfanJohn 2012-08-12 17:32:54

+0

對不起,你的原始答案是正確的。但是,仍然存在'http:// domain.com/appbeta'和'http:// domain.com/appbeta /'的問題。 – 2012-08-12 17:38:20