我正在将我的网址转换为友好的网址,而我正在与其中一些网站进行一些努力,
例如,让我们说帖子和类别,
发布(详情):
/post/the-title/10 /* /post.php?id=10 */
帖子(列表)
/posts/ /* /posts.php?what=last */
/posts/?what=top /* /posts.php?what=top */
...
但是我不确定如何实现类别,为了保持网址的结构,我想说明一下:
/posts/category-name/5 /* /posts.php?what=cat&id=5 */
但这就是我重新编写我的网址(列表)的方式:
RewriteRule ^posts/$ posts.php?$1&friendly=1 [QSA]
所以我相信我应该预先准备它,以便另一个不会触发,例如:
RewriteRule ^posts/(.+)/(.+) posts.php?what=cat&id=$2&friendly=1
RewriteRule ^posts/$ posts.php?$1&friendly=1 [QSA]
所以这里的问题是:
1)这是一种方式(近)去吗? (期望网址类型会改变)
2)是否会在另一个之前建立RewriteRule,以确保它不会在循环中结束?
欢迎任何输入,我想在提交到url结构之前考虑一下
答案 0 :(得分:1)
对于“/ post / the-title / 10 / * /post.php?id=10 * /”
RewriteRule ^post/[^/]+/([0-9]+)/?$ /post.php?id=$1&friendly=1 [L,QSA]
对于“/ posts / / * /posts.php?what=last * /”
RewriteCond %{QUERY_STRING} !^what=
RewriteRule ^posts/?$ posts.php?what=last&friendly=1 [L,QSA]
对于“/ posts /?what = top / * /posts.php?what=top * /”
RewriteCond %{QUERY_STRING} ^what=
RewriteRule ^posts/?$ posts.php?friendly=1 [L,QSA]
对于“/ posts / category-name / 5 / * /posts.php?what=cat&id=5 * /”
RewriteRule ^posts/[^/]+/([0-9]+)/?$ /posts.php?what=cat&id=$1&friendly=1 [L,QSA]