我正在尝试将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
有没有人对如何让服务器了解我的请求有任何想法?谢谢
答案 0 :(得分:0)
问题不是源于根文件,而是来自app / webroot / index.php文件。该文件夹中的.htaccess不是/app/webroot/
的RewriteBase-ing,而是在服务器的根目录下重新定位它。只需在RewriteBase /app/webroot/
文件夹的<IfModule mod_rewrite.c>
文件的.htaccess
部分添加行app/webroot/
,然后在RewriteBase /webroot/
文件中添加行.htaccess
在app
文件夹中就可以了。