0

前段时间我使用了一个小的 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 并实例化控制器和要调用的方法。例如,如果 url 是这样myserver.com/User/getAll的,将实例化控制器 User 并调用 getAll 方法。但是现在我在一个禁用了 .htaccess 文件的服务器上工作,我无法更改它。使用 .htaccess 文件还有一些替代方法,是否可以在某些 php 文件中拆分 url?

如果你想查看这个框架的完整代码,你可以在这里查看

4

2 回答 2

1

不确定您的实际架构和需求,但替代解决方案可能类似于覆盖路由:

<?php

    if (isset($_GET['action'])) { 
        include 'controllers/' . check_filename($_GET['a']) . '.php';
    }
    if (isset($_GET['view'])) { 
        include 'views/'.check_filename($_GET['v']) . '.php';
    }

?>
于 2013-10-19T20:11:28.953 回答
0

好吧..您可以参考主要的 index.php 并添加变量:

index.php?url=User-getAll

保持链接原样是行不通的,因为服务器不知道您希望所有链接都引用 index.php。

于 2013-10-19T19:46:24.983 回答