如何在不使用.htaccess的情况下拆分URL

时间:2013-10-19 19:35:44

标签: php .htaccess url-routing

前段时间我使用的是一个小型的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

2 个答案:

答案 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。