2014-10-26 71 views
1

我正在尝试重写仅用于子目录,但我遇到了RewriteCond问题。 我的所有文件都在/abc为子文件夹重写url

这里是我的htaccess(/abc/.htaccess)文件:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} -f 
RewriteCond %{REQUEST_URI} ^/static/ [NC,OR] 
RewriteCond %{REQUEST_URI} ^/files/ [NC] 
RewriteRule . - [L] 

RewriteRule (.*) index.php?_url=$1 [QSA,L] 

所以我想重写每个URL除了/static/files现有文件的index.php。但是这个代码也重写了/static/a.jpg,因为请求是/abc/static/a.jpg。我尝试将RewriteBase设置为/abc/,但没有任何变化。

任何想法如何解决这个问题?

回答

0

有你的.htaccess像这样/abc/.htaccess

RewriteEngine on 
RewriteBase /abc/ 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_URI} ^/(static|files)(/|$) [NC] 
RewriteRule . - [L] 

RewriteCond %{REQUEST_FILENAME} !-f  
RewriteRule (.*) index.php?_url=$1 [QSA,L] 
+0

这将排除整个文件夹,但我只希望现有的文件从重写被排除 - 我要处理404页,使用PHP,但你给了我一个想法,我的新代码如下所示:http://pastebin.com/9ZL2Dt5k唯一的问题是,当我打开/ abc/static或其他任何存在的文件夹时,它会将我重定向到/ abc /静态/?_ URL =静态 – vsakos 2014-10-26 18:27:57