未找到请求的 URL /en/ 在此服务器上未找到

Not Found The requested URL /en/ was not found on this server

我下载了一个在 PHP 中构建的网站实例。我想用 MAMP 来管理它。

当我转到本地主机尝试访问该站点时,我得到:

Not Found The requested URL /en/ was not found on this server.

在 site/folder 结构中有一个 rootfile.php 指向 config.php 我认为它根据环境路由站点。

config.php

<?php

    // error_reporting(E_ALL);
    // ini_set("display_errors", 1);

    session_start();

    $validLanguages = array('EN'=>'en','DE'=>'de'/*,'RU'=>'ru','PT'=>'pt','HU'=>'hu','NL'=>'nl'*/);

    switch ($_SERVER['SERVER_NAME'])
    {
            case'127.0.0.1':
            {
            error_reporting(E_ALL);
            ini_set("display_errors", 1);

            if(substr($_SERVER['HTTP_HOST'],0,7)!='http://')
            {
                $_SERVER['HTTP_HOST']='http://'.$_SERVER['HTTP_HOST'];
            }

            define('ROOT_PATH',  '/Users/antonio-pavicevac-ortiz/Dropbox/developer_folder/__work__/fragrances.christinaaguilera.dev/');
            define('TEMPLATE_PATH', ROOT_PATH.'templates/');
            define('XML_PATH',    ROOT_PATH.'xml/');
            define('ROOT_URL',    $_SERVER['HTTP_HOST'].'/fragrances.christinaaguilera.dev/');
            define('MEDIA_ROOT_URL','http://127.0.0.1/Users/antonio-pavicevac-ortiz/Dropbox/developer_folder/__work__/fragrances.christinaaguilera.dev/');
            define('CSS_ROOT_URL',  ROOT_URL.'css/');
            define('JS_ROOT_URL',   ROOT_URL.'js/');
            define('IMG_ROOT_URL',  ROOT_URL.'images/');

            break;
        }

        case'192.168.0.206':
        {
            error_reporting(E_ALL);
            ini_set("display_errors", 1);

            if(substr($_SERVER['HTTP_HOST'],0,7)!='http://')
            {
                $_SERVER['HTTP_HOST']='http://'.$_SERVER['HTTP_HOST'];
            }

            define('ROOT_PATH',  '/media/sf_public_html/aguilera-microsite/branches/20141007_responsive/');
            define('TEMPLATE_PATH', ROOT_PATH.'templates/');
            define('XML_PATH',    ROOT_PATH.'xml/');
            define('ROOT_URL',    $_SERVER['HTTP_HOST'].'/aguilera-microsite/branches/20141007_responsive/');
            define('MEDIA_ROOT_URL','http://192.168.0.206/aguilera-microsite/branches/20141007_responsive/');
            define('CSS_ROOT_URL',  ROOT_URL.'css/');
            define('JS_ROOT_URL',   ROOT_URL.'js/');
            define('IMG_ROOT_URL',  ROOT_URL.'images/');

            break;
        }

    case'137.183.87.135':
        {
            error_reporting(E_ALL);
            ini_set("display_errors", 1);

            if(substr($_SERVER['HTTP_HOST'],0,7)!='http://')
            {
                $_SERVER['HTTP_HOST']='http://'.$_SERVER['HTTP_HOST'];
            }

            define('ROOT_PATH',  '/content/aguilera/docs/responsive/');
            define('TEMPLATE_PATH', ROOT_PATH.'templates/');
            define('XML_PATH',    ROOT_PATH.'xml/');
            define('ROOT_URL',    $_SERVER['HTTP_HOST'].'/responsive/');
            define('MEDIA_ROOT_URL','http://137.183.87.135:4064/content/aguilera/docs/responsive/');
            define('CSS_ROOT_URL',  ROOT_URL.'css/');
            define('JS_ROOT_URL',   ROOT_URL.'js/');
            define('IMG_ROOT_URL',  ROOT_URL.'images/');

            break;
        }

    case'137.183.87.139':
        {
            // error_reporting(E_ALL);
            // ini_set("display_errors", 1);

            if(substr($_SERVER['HTTP_HOST'],0,7)!='http://')
            {
                $_SERVER['HTTP_HOST']='http://'.$_SERVER['HTTP_HOST'];
            }

            define('ROOT_PATH',  '/content/aguilera/docs/restage/');
            define('TEMPLATE_PATH', ROOT_PATH.'templates/');
            define('XML_PATH',    ROOT_PATH.'xml/');
            define('ROOT_URL',    $_SERVER['HTTP_HOST'].'/restage/');
            define('MEDIA_ROOT_URL','http://137.183.87.139:4064/restage/');
            define('CSS_ROOT_URL',  MEDIA_ROOT_URL.'css/');
            define('JS_ROOT_URL',   MEDIA_ROOT_URL.'js/');
            define('IMG_ROOT_URL',  MEDIA_ROOT_URL.'images/');

            break;
        }

    case'137.183.87.140':
        {
            // error_reporting(E_ALL);
            // ini_set("display_errors", 1);

            if(substr($_SERVER['HTTP_HOST'],0,7)!='http://')
            {
                $_SERVER['HTTP_HOST']='http://'.$_SERVER['HTTP_HOST'];
            }

            define('ROOT_PATH',  '/content/aguilera/docs/restage/');
            define('TEMPLATE_PATH', ROOT_PATH.'templates/');
            define('XML_PATH',    ROOT_PATH.'xml/');
            define('ROOT_URL',    $_SERVER['HTTP_HOST'].'/restage/');
            define('MEDIA_ROOT_URL','http://137.183.87.140:4064/restage/');
            define('CSS_ROOT_URL',  MEDIA_ROOT_URL.'css/');
            define('JS_ROOT_URL',   MEDIA_ROOT_URL.'js/');
            define('IMG_ROOT_URL',  MEDIA_ROOT_URL.'images/');

            break;
        }

    default:
        {
           // error_reporting(E_ALL);
           // ini_set("display_errors", 1);

            if(substr($_SERVER['HTTP_HOST'],0,7)!='http://')
            {
                $_SERVER['HTTP_HOST']='http://'.$_SERVER['HTTP_HOST'];
            }

            if(!preg_match('~elizabetharden~',$_SERVER['HTTP_HOST'])){
                // PROD instance root path
                define('ROOT_PATH',  'D:/Sites/wwwroot/fragrances.christinaaguilera.com/content/aguilera/docs/restage/');
            } else {
                // DEV instance root path
                define('ROOT_PATH',  'D:/Sites/wwwroot/christinaaguilera.elizabetharden.net/content/aguilera/docs/restage/');
            }

            define('TEMPLATE_PATH', ROOT_PATH.'templates/');
            define('XML_PATH',    ROOT_PATH.'xml/');
            define('ROOT_URL',    $_SERVER['HTTP_HOST'].'/');

            if(isset($_SERVER["HTTP_SSL"])){
                // define('MEDIA_ROOT_URL','https://secure.footprint.net/perfumes-christinaaguilera-com/restage/v_23/');
            } else {
                // define('MEDIA_ROOT_URL','http://media.perfumes.christinaaguilera.com/restage/v_23/');
            }

            define('MEDIA_ROOT_URL','/');

            define('CSS_ROOT_URL',  MEDIA_ROOT_URL.'css/');
            define('JS_ROOT_URL',   MEDIA_ROOT_URL.'js/');
            define('IMG_ROOT_URL',  MEDIA_ROOT_URL.'images/');

             break;
        }

    }

有什么想法吗?

恐怕这个 config.php 文件没有重定向,也没有给出任何关于应用程序如何处理路由以及导致错误的提示。它仅仅定义了某些常量,这些常量似乎用作此文件处理的应用程序的配置(针对不同的环境)。

如果非要我猜的话,我会说你没有正确配置你的虚拟主机。错误消息指的是 /en/ URL。看起来该消息来自您的网络服务器,而不是您的 PHP 应用程序。由于 URL 没有提到特定文件(以 .html 或 .php 结尾),我猜应​​用程序是为了将所有请求路由到一个入口点。这可能是您提到的 rootfile.php 或更常见的文件,如 public/index.php。但是,如果您的虚拟主机设置不正确,任何指向 /en/ URL 的重定向都会使网络服务器实际查找 /en 目录。

在线查找我发现 MAMP 将其 vhost 配置存储在 Applications/MAMP/conf/apache/httpd.conf 中。在那里,您需要确保所有内容都被重定向到您的应用程序具有的任何入口点。参见 Prix's answer at https://serverfault.com/a/188411/443858