我希望我能在一个相对简单的问题上得到一些帮助:
我一直在为大学编写 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。
这很简单。使用这种方式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文件在做什么?
RewriteEngine On - 启动 Apache2 重写引擎模块。RewriteCond %{REQUEST_FILENAME} !-f - 当路径上不存在文件时,RewriteCond %{REQUEST_FILENAME} !-d - 当路径上不存在目录时,RewriteRule ^(.*)$ api.1.0.php [L,QSA]- 无论您提供什么,都将其api.1.0.php与查询字符串一起提供给 ,并在此处停止重写规则。此代码适用于这种方式:
php -S localhost:80 router.php
Run Code Online (Sandbox Code Playgroud)