我在 php 编码方面相对较新,并且正在编写自己的 MVC 东西。我宁愿这样做而不是使用框架 b/c 我会这样更好地理解它:)。
目前,我的网站设置如下:
domain.com/services
会改写成 index.php?page=services
在 index.php 内部,我有代码可以根据 URI 字符串加载正确的模板。但是,我想让我的网站比这更复杂一些......
我希望服务器根据 uri 字符串加载适当的 php 文件。做这个的最好方式是什么?也许 index.php 真的读取并执行了另一个 php 文件?
谢谢!
编辑:我当前处理我现在正在做的事情的 htaccess 是:
# Turn on URL rewriting
RewriteEngine On
# Installation directory
#RewriteBase
# Protect hidden files from being viewed
<Files .*>
Order Deny,Allow
Deny From All
</Files>
RewriteCond %{HTTP_HOST} ^domain.net$
RewriteRule (.*) http://www.domain.net$1 [R=301]
#remove trailing slash
RewriteRule ^(.+)/$ /$1 [R=301,L]
# Protect application and system files from being viewed
RewriteRule ^(?:templates|configs|templates_c)\b.* index.php/$0 [L]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule ^([^/\.]+)/?$ index.php?page=$1
我应该改变什么来实现我想要的?我只是在想:
RewriteRule ^(.*)$ index.php [L,NS]
接着:
list( $controller, $function, $params ) = explode( '/', $uri, 3 );
$params = explode( '/', $uri );
此时执行正确代码的好的 php 方法是什么?只包括文件?