给htaccess添加另一个例外?
问题描述:
我的.htaccess文件alows访问真正文件服务器上的文件夹&。为别的,它会重定向到/index.php
,当的app
文件夹在这种情况下,它会重定向到指定/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]
答
我不是很确定以下重写做什么:
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(.*)$
)
第一次重写说使用'/index.php ...'*除非* url匹配* app * ....至于你的建议,我试过了,但没有奏效。它继续重定向到应用程序。 – 2012-08-12 17:30:10
啊,然后让我们把新的/ appbeta放在我不明白的规则之前。我会更新答案中的顺序。 – HeatfanJohn 2012-08-12 17:32:54
对不起,你的原始答案是正确的。但是,仍然存在'http:// domain.com/appbeta'和'http:// domain.com/appbeta /'的问题。 – 2012-08-12 17:38:20