据我所知,“路由”和使用“友好网址”有两种不同的方式
1:仅使用.htaccess:
RewriteRule ^foobar/([^/]+)/([^/]+)$ "index.php?foo=$1&bar=$2" [NC]
或 2:将.htaccess与index.php'routing'系统结合使用:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# if file not exists
RewriteCond %{REQUEST_FILENAME} !-f
# if dir not exists
RewriteCond %{REQUEST_FILENAME} !-d
# avoid 404s of missing assets in our script
RewriteCond %{REQUEST_URI} !^.*\.(jpe?g|png|gif|css|js)$ [NC]
RewriteRule .* index.php [QSA,L]
</IfModule>
然后在index.php里面:
$uri = explode("/",substr($_SERVER['REQUEST_URI'],1));
if((isset($uri[0])) && ($uri[0]!="")) {
$page = $uri[0];
if(is_file(ROOT."/subs/docs/$page/config.php")) {
include(ROOT."/subs/docs/$page/config.php");
}
} else {
$page="home";
}
然后在某处包含$ page。
我的问题是,哪种方式更好,还是有其他一些我不知道的方法?我的意思是效率,速度和逻辑。
答案 0 :(得分:1)
在现实生活中,大多数路由系统都是如此复杂,以至于第一个选项将.htaccess
转变为生活的噩梦。
所以,除了第二个之外别无选择。