一位同学的公司用的框架是thinkphp3.2.3的给了一个需求:把tp传统的URL由 http://域名/home/newss/news/id/1.html
改为利于seo的http://域名/home/newss-news1.html
不知道怎么写重写规则,但我觉得这样的URL做seo优化不怎么好,于是我把URL写成如下方式
http://域名/news-1.html 它对应tp原来的url为 http://域名/home/newss/news/id/1.html
重写规则如下:
RewriteRule ^news-(\d+)\.html$ index\.php?s=/Home/newss/news/id/$1 [QSA,L]
完美解决了功能需求,比原先给的需求更利于seo优化。
为什么要加个 ”?s “,在tp的convention.php中可以看到以下代码:
// 兼容模式PATHINFO获取变量例如 ?s=/module/action/id/1 后面的参数取决于URL_PATHINFO_DEPR
'VAR_PATHINFO' => 's',
|
|