Web服务器无法理解URL格式

时间:2014-01-04 06:56:54

标签: php .htaccess cakephp

我正在尝试将CakePHP网站从本地开发服务器迁移到NetworkSolutions服务器。我已经克服了一些问题,但有一个我无法在互联网上找到解决方案,也无法通过反复试验。

我有一个名为" DonationController"的控制器。当我调用网址prefix.website.com/Donation.php时,网络服务器会理解我的请求,但在删除.php时无法理解。 更令人沮丧的是,我还需要传递一个参数"传入" - 这个网址是prefix.website.com/Donation/incoming - 它也无法理解。

当传递这些URL时,它给出了消息

的400错误
Bad Request

Your browser sent a request that this server could not understand

服务器上的错误日志将此错误记录为

[Sat Jan 04 01:49:03 2014][error] [client X.X.X.X] Invalid URI in request POST /Donation/incoming HTTP/1.0

我认为它与.htaccess文件有关,目前看起来像这样:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase /
   RewriteRule ^([^.?]+).json(.*)$ app/webroot/$1.php$2 [L]
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

DirectoryIndex index.php

有没有人对如何让服务器了解我的请求有任何想法?谢谢

1 个答案:

答案 0 :(得分:0)

问题不是源于根文件,而是来自app / webroot / index.php文件。该文件夹中的.htaccess不是/app/webroot/的RewriteBase-ing,而是在服务器的根目录下重新定位它。只需在RewriteBase /app/webroot/文件夹的<IfModule mod_rewrite.c>文件的.htaccess部分添加行app/webroot/,然后在RewriteBase /webroot/文件中添加行.htaccessapp文件夹中就可以了。