我没有任何PHP框架经验,只是对它们的使用有一些非常普遍的问题:特别是URL路由。
我使用的是微框架,飞行。
简单路由示例:
<?php
// Flight Framework
require "flight/Flight.php";
Flight::route('/', function(){
echo 'hello world!';
});
Flight::start();
?>
当我访问这个页面(/)时,我会收到"你好世界"的消息。很好,工作很好。
我的问题是,路由是否用于不存在的URL(例如/categies)?然后,当用户访问该页面时,会调用该函数吗?
因此,如果我将路线更改为"/categies",那么访问/categies时不应该显示"你好世界"功能吗?
为了实现预期效果,您需要启用URL重写。如果您使用apache作为web服务器,使用Mod rewrite
可以实现这一点。当URL被重写时,web服务器将所有不存在的路径URL路由到index.php
,并让index.php处理请求。以下是放置在.htaccess
文件中的这种重写代码的示例。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
使用Flight时,使用PHP的内部web服务器要容易得多。至少用于测试目的。
php -S <url>:<port>