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):

CakePHP不重写某目录.htaccess
  1. # 不重写subdirectory目录
  2. <IfModule mod_rewrite.c>   
  3.     RewriteEngine On   
  4.     RewriteBase /   
  5.     RewriteCond %{REQUEST_URI} ^/subdirectory/(.*)$   
  6.     RewriteRule ^.*$ - [L]   
  7. </IfModule>   
  8.   
  9. <IfModule mod_rewrite.c>   
  10.     RewriteEngine on   
  11.     RewriteBase /   
  12.     RewriteRule    ^$ app/webroot/    [L]   
  13.     RewriteRule    (.*) app/webroot/$1 [L]   
  14. </IfModule>  

很多站长会将自己的网站加上一个Google网站管理员工具,假如用CakePHP开发的项目,也需要对主目录的.htaccess加以修改。代码如下:

CakePHP Google管理员工具.htaccess
  1. # 不转发带google前缀的目录或文件   
  2. <IfModule mod_rewrite.c>   
  3.     RewriteEngine On   
  4.     RewriteBase /   
  5.     RewriteCond %{REQUEST_URI} ^/google(.*)$   
  6.     RewriteRule ^.*$ - [L]   
  7. </IfModule>   
  8.   
  9. <IfModule mod_rewrite.c>   
  10.     RewriteEngine on   
  11.     RewriteBase /   
  12.     RewriteRule    ^$ app/webroot/    [L]   
  13.     RewriteRule    (.*) app/webroot/$1 [L]   
  14. </IfModule>  
版块:Cake文档 Tags: , 时间:2009-04-13
文章评论
1 回复 for "CAKEPHP .htaccess不重写某子目录或文件"
智康博客 - 2009-04-23
很早以前我也用过这个
评论表单