我以前从来没有遇到CakePHP的问题,但是对于此服务器有些奇怪,并导致.htaccess文件中的重定向行为异常。为什么我的.htaccess文件重定向到完整的服务器路径而不是相对路径?
CakePHP在.htaccess文件中使用mod_rewrite将请求重定向到它自己的webroot文件夹。问题是重定向列出了错误的路径并导致了404错误。我的CakePHP的应用程序,它存储在列表目录中,有一个.htaccess文件如下:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [R=301,L]
RewriteRule (.*) app/webroot/$1 [R=301,L]
</IfModule>
(*注意R = 301使外部重定向,所以我们可以看到什么是我们的最终回事它真的应该忽略这个标志并在内部做重定向,透明的最终用户)
据说这是为了从http://hostname.com/~username/listings/
的任何请求重定向到http://hostname.com/~username/listings/app/webroot/
然而,而不是简单地增加“app/webroot/
”到最后,因为它是应该是,它添加完整的服务器路径(/home/username/public_html/listings/app/webroot/
),导致最终的网址http://hostname.com/home/username/public_html/listings/app/webroot/
,其中我显然不正确,并触发404错误。
托管在一个共享的托管帐户,所以这限制了我可以做的设置。我从来没有见过这种情况发生过,而且我认为这是从主机端事情出错,但如果有人有一些有用的建议,那么我可以把它们放到托管公司。
我可以想象这将是与笼的主目录,这是核心的httpd的设置做。conf,因为我很确定〜用户名格式是符号链接 – 2010-03-30 08:09:15