我没有任何PHP框架经验,只是对它们的使用有一些非常普遍的问题:特别是URL路由。
我正在使用微框架,Flight。
简单路由示例:
<?php
// Flight Framework
require "flight/Flight.php";
Flight::route('/', function(){
echo 'hello world!';
});
Flight::start();
?>
当我访问此页面(/)时,我收到了'hello world'消息。很好,工作正常。
我的问题是,路由是否用于不存在的网址(例如/类别)?然后,当用户访问该页面时,将调用该函数?
因此,如果我将路线改为'/ categories',那么在访问/类别时不应该显示这个'hello world'功能吗?
答案 0 :(得分:3)
为了满足您的期望,您需要启用URL重写。如果您使用apache作为使用Mod rewrite
的Web服务器,则可以实现此目的。重写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]
答案 1 :(得分:0)
使用Flight时,使用PHP的内部Web服务器更加容易。至少用于测试目的。
php -S <url>:<port>