【问题标题】:Web server cannot understand the URL formatWeb 服务器无法理解 URL 格式
【发布时间】:2014-01-04 06:56:53
【问题描述】:

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

我有一个名为“DonationController”的控制器。当我调用 url prefix.website.com/Donation.php 时,Web 服务器理解我的请求,但当我删除 .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

有人对我如何尝试让服务器理解我的请求有任何想法吗?谢谢

【问题讨论】:

    标签: php .htaccess cakephp


    【解决方案1】:

    问题不是源于根文件,而是源于 app/webroot/index.php 文件。该文件夹中的 .htaccess 不是在 /app/webroot/ 的 RewriteBase-ing,而是在服务器的根目录中重新设置它。只需在app/webroot/ 文件夹的.htaccess 文件的&lt;IfModule mod_rewrite.c&gt; 部分中添加行RewriteBase /app/webroot/ 并在.htaccess 文件夹中的.htaccess 文件中添加行RewriteBase /webroot/ 即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-20
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      相关资源
      最近更新 更多