我希望我能在一个相对简单的问题上得到一些帮助:
我一直在为大学编写PHP应用程序,由于我完全没有提前考虑,他们测试我们应用程序的服务器不是Apache,它们只是php -S
服务器(PHP内置服务器)。
因此,我的应用程序完全依赖于将URI路由到一个特定的文件,这是我在.htaccess
:中工作得很好的一点
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ api.1.0.php [L,QSA]
我知道你在使用普通的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;
?>
上面的代码是您拥有的.htaccess
文件的替换:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ api.1.0.php [L,QSA]
我想提出这个问题的更好方法是,有人能帮我理解
.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