将一个非常简单的 htaccess 转换为 PHP 路由器?

Oll*_*lie 2 php .htaccess

我希望我能在一个相对简单的问题上得到一些帮助:

我一直在为大学编写 PHP 应用程序,由于我完全缺乏远见,他们正在测试我们的应用程序的服务器不是 Apache,它们只是php -S服务器(PHP 内置服务器)。

所以我的应用程序完全依赖于将 URI 路由到一个特定文件,我在这方面做得很好.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ api.1.0.php [L,QSA]
Run Code Online (Sandbox Code Playgroud)

我知道您可以在使用普通 PHP 服务器时使用路由器文件,但是有人可以帮我将此.htaccess文件“转换”为 PHP 路由器吗?

提前感谢任何能指出我正确方向的人!

编辑:我想提出这个问题的更好方法是,有人可以帮助我了解.htaccess文件在做什么吗?然后我可以很容易地将它转换成 PHP。

Pra*_*man 7

这很简单。使用这种方式router.php

<?php
    $path = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
    if (!file_exists($path))
      include "api.1.0.php";
    else
      return false;
?>
Run Code Online (Sandbox Code Playgroud)

上面的代码替换了.htaccess您拥有的文件:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ api.1.0.php [L,QSA]
Run Code Online (Sandbox Code Playgroud)

我想提出这个问题的更好方法是,谁能帮助我了解.htaccess文件在做什么?

  1. RewriteEngine On - 启动 Apache2 重写引擎模块。
  2. RewriteCond %{REQUEST_FILENAME} !-f - 当路径上不存在文件时,
  3. RewriteCond %{REQUEST_FILENAME} !-d - 当路径上不存在目录时,
  4. RewriteRule ^(.*)$ api.1.0.php [L,QSA]- 无论您提供什么,都将其api.1.0.php与查询字符串一起提供给 ,并在此处停止重写规则。

此代码适用于这种方式:

php -S localhost:80 router.php
Run Code Online (Sandbox Code Playgroud)