RewriteRule:在url中移动id文章

时间:2014-04-02 03:52:07

标签: php apache .htaccess mod-rewrite

我想将帖子ID移动到网址中的最后一个位置。像这样:

http://www.mysite.com/news/123-post.html

http://www.mysite.com/news/post-123.html

原创htaccess

RewriteRule ^([^.]+)/([0-9]+)-(.*).html$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

我改为

RewriteRule ^([^.]+)/(.*)-([0-9]+).html$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

并在浏览器中粘贴新网址http://www.mysite.com/news/post-123.html但不起作用

1 个答案:

答案 0 :(得分:0)

您已交换了news idseo url个参数。你必须在你的规则中做同样的事情。

此规则(新规则)

RewriteRule ^([^.]+)/(.*)-([0-9]+).html$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

应该是这样的

RewriteRule ^([^.]+)/(.*)-([0-9]+).html$ index.php?newsid=$3&seourl=$2&seocat=$1 [L]

$2现已进入seourl$3现已进入newsid。否则,您将遇到问题。

此外,您可以通过确保seourl不包含任何斜杠(/)来优化您的规则,如果您希望它只在同一个文件夹而不是一个相对的路径

RewriteRule ^([^.]+)/([^/]+)-([0-9]+).html$ index.php?newsid=$3&seourl=$2&seocat=$1 [L]