使用 htaccess 通过 php 重新路由所有请求



我正在使用.htaccess文件将所有即将到来的请求发送到index.php,例如:

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f  
RewriteRule ^.*$ ./index.php

现在我不想在我的服务器中使用.htaccess文件,那么有什么方法可以处理或发送某个文件上的所有传入请求吗? 或者让我们说index.php

您可以将相应的配置选项从 .htaccess 文件移到 apache 配置文件中。他们也在那里工作。

除此之外:没有。

您可以使用index.php/test并通过 $_SERVER['PATH_INFO'] 获取后者,如果它是在 apache 中激活的(请参阅手册),但在此变体中,您必须在所有 URL 前面加上"index.php/"。

无法自动将每个请求重定向到索引.php。

如果您不想使用这两个选项中的任何一个,则至少必须在您希望能够访问的每个位置创建一个php文件,并在此文件中重定向或包含另一个文件。不好。

几乎不修改网络服务器的选项,即.htaccess,虚拟主机文件等。

但是,如果您有权运行 PHP 的内置 Web 服务器,则可以使用内置的 Web 服务器。

输入命令 :

$ php -S localhost:80 router.php

并让你路由器.php文件如下:

<?php
// router.php
if (preg_match('/.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
return false;    // serve the requested resource as-is.
} else { 
    echo "<p>Welcome to PHP</p>";
}
?>

来源: http://www.php.net/manual/en/features.commandline.webserver.php

最新更新