前段时间我使用的是一个小型的php mvc框架。此框架使用.htaccess文件。在.htaccess中,我使用一些规则来获取url并通过index.php文件中的参数传递它,如下所示:
php_flag display_errors on
php_value error_reporting 9999
RewriteEngine On
RewriteBase /fba/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
稍后在我的index.php中,我使用url参数拆分url并实例化Controller和要调用的方法。例如,如果url类似于myserver.com/User/getAll
,则会实例化控制器User并调用getAll方法。但是现在我正在使用已禁用.htaccess文件的服务器,我无法更改它。有一些替代使用.htaccess文件,在某些php文件中拆分url可能吗?
如果您想查看此框架的完整代码,可以查看here
答案 0 :(得分:1)
不确定您的实际架构和需求,但替代解决方案可能类似于覆盖路由:
<?php
if (isset($_GET['action'])) {
include 'controllers/' . check_filename($_GET['a']) . '.php';
}
if (isset($_GET['view'])) {
include 'views/'.check_filename($_GET['v']) . '.php';
}
?>
答案 1 :(得分:0)
嗯..您可以参考主index.php并添加变量:
index.php?url=User-getAll
保持链接不会起作用,因为服务器不知道您希望所有链接都引用index.php。