2012-08-12 54 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