0

我正在将我的网址转换为友好的网址,我正在为其中一些网址苦苦挣扎,

例如,让我们说帖子和类别,

帖子(详细):

/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)那是(接近)要走的路吗?(期望 url 类型会改变)
2)将在另一个之前建立 RewriteRule 确保它不会以循环结束?

欢迎任何输入,我想在提交 url 结构之前考虑一下

4

1 回答 1

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]
于 2013-10-14T19:37:15.247 回答