之前做的一个站,用了重写实现了伪静态,今天想加一个博客的功能,但发现了一个问题,之前做的重写把“(\w)/”进行重写了,而现在/blog/也打不开了,因为系统没有把/blog/当成对一个文件夹的访问,而是作为了重写里的一个参数,对重写本来就战战兢兢的我,搜了半天终于找到了一个办法,记录下来,备忘一下:
# 不重写subdirectory目录
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/subdirectory/(.*)$
RewriteRule ^.*$ - [L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
再多加一个例子:
# 不转发带google前缀的目录或文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/google(.*)$
RewriteRule ^.*$ - [L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>