为子文件夹重写url
问题描述:
我正在尝试重写仅用于子目录,但我遇到了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/
,但没有任何变化。
任何想法如何解决这个问题?
答
有你的.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]
这将排除整个文件夹,但我只希望现有的文件从重写被排除 - 我要处理404页,使用PHP,但你给了我一个想法,我的新代码如下所示:http://pastebin.com/9ZL2Dt5k唯一的问题是,当我打开/ abc/static或其他任何存在的文件夹时,它会将我重定向到/ abc /静态/?_ URL =静态 – vsakos 2014-10-26 18:27:57