【发布时间】:2016-07-29 04:36:33
【问题描述】:
我有一个有时包含一个或多个参数的 URL,我希望能够相应地重写。
网址如下:
/index.php?pagetitle=Home
我已经设法让这个 URL 显示我想要使用以下内容:
/Home
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([0-9a-zA-Z]+) index.php?pagetitle=$1 [NC,L]
我也希望能够拥有相同的 URL,但带有文章 ID
.com/index.php?pagetitle=Home&articleid=20
我想这样显示:
.com/Home/20
但我似乎无法弄清楚如何让它在多个参数上工作。
更新: 好的,所以我设法让下面的工作使用: index.php?pagetitle=$1&articleid=$2
显示为: .com/Home/20
我已经尝试更进一步,并且能够使用文章标题以及我尝试的规则如下。
RewriteRule ^([0-9a-zA-Z]+)(?:/([0-9a-zA-Z]+))(?:/([0-9]*))?/?$ index.php?pagetitle=$1&articletitle=$2&articleid=$3 [NC,L,QSA]
所以会显示为: .com/Home/ArticleTitle/20
但它不想为我工作,有没有人知道我做错了什么,并提前再次感谢。
http://karpium.co.uk/Home/Baits/20 - 这个网址有效
http://karpium.co.uk/Home - 但是这个网址在使用 pagetitle= 和 articleid= 时不起作用
【问题讨论】:
-
我曾经对这个漂亮的 Apache 路由感到头疼,但后来我意识到用 PHP 更容易完成。试试 SLIM PHP„ 与 Apache .conf 文件相比,它具有简单的安静路由和非常高的性能和更多的功能范围
-
感谢您尝试在 htaccess 中执行此操作的主要原因是因为它是一个大学项目,我们必须以尽可能少的脚本创建网站,但我会看看未来的项目,谢谢
标签: php .htaccess mod-rewrite url-rewriting clean-urls