我正在尝试在htaccess
中应用一些重写规则,我在stackoverflow上查看了几篇可用的文章,但我仍然无法解决所有问题。
丑陋的网址:www.example.com/index.php?p=page&article_id=14¤tpage=2
SEO网址:www.example.com/page/14/2
p
是动态网页名称,article_id
显然是文章ID,currentpage
是分页查询字符串。
我目前的规则:
RewriteRule ^(.*)$ index.php\?p=$1 [QSA,L]
前面提到的规则在这种情况下非常有效:
丑陋的网址:www.example.com/index.php?p=page
SEO网址:www.example.com/page
但是,在某些情况下我有article_id
和currentpage
时呢?
非常感谢任何帮助。
答案 0 :(得分:0)
类似于:
RewriteRule ^page/([^/]*)/([^/]*)$ index.php?p=page&article_id=$1¤tpage=$2 [QSA,L]
RewriteRule ^(.*)$ index.php?p=$1 [QSA,L]
路由那个具体案例?
或者在PHP中路由它,这是您目前必须适合的.htaccess
的一个非常简单的路线:
$p = strtolower($_GET['p']);
$params = explode('/', $p);
if(!is_array($params)) {
$func = $params;
} else {
$func = array_shift($params);
}
if("page" == $func) {
if(is_array($params)) {
$article_id = $params[0];
$currentpage = isset($params[1]) ? $params[1] : 0;
//Do something with that info, use what's needed to errorcheck/etc
} else {
//default view
}
}
尽管如此,如果所有这些都是动态的,那么在我看来,调查路由会让你更好。再一次,这个例子展示了如何在没有任何外部的,简单的东西的情况下做到这一点,那里有很多类也会做路由。