CAKEPHP .htaccess不重写某子目录或文件
CakePHP框架会把urls重写对自己的友好的urls,适合MVC项目的实施。假如有某一目录不需要CakePHP重写,假如没有重新定义.htaccess将无法访问此目录。假如配置环境为php fastCGI可能会出现:No input file specified.错误。
这时可以自己为.htaccess加一段代码,告诉服务器不转发此子目录即可,这时需要注意的是,此子目录的名称不能为CakePHP Controller的名称(name值)。
修改网站主目录中.htaccess如下(本人使用的CakePHP版本为,最新的CakePHP稳定版:1.2.2.8120 Stable):
- # 不重写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网站管理员工具,假如用CakePHP开发的项目,也需要对主目录的.htaccess加以修改。代码如下:
- # 不转发带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>
