使用forum.htaccess的3个参数重写URL

使用forum.htaccess的3个参数重写URL,.htaccess,.htaccess,我正在尝试将URL重写为以下URL Http://***.com/index.php?p=forum&mod=view_posts&page=$3&name=$2&id=$1 Http://***.com/forum/{id}-{name}/{page} Http://***.com/forum/1-Hello-World/1 我尝试了以下代码,但没有任何乐趣 RewriteRule ^forum/([^-]+)-([^&]+)/([^-]+)$ i

我正在尝试将URL重写为以下URL

Http://***.com/index.php?p=forum&mod=view_posts&page=$3&name=$2&id=$1

Http://***.com/forum/{id}-{name}/{page}

Http://***.com/forum/1-Hello-World/1
我尝试了以下代码,但没有任何乐趣

RewriteRule ^forum/([^-]+)-([^&]+)/([^-]+)$ index.php?p=forum&mod=view_posts&page=$3&orderby=$2&id=$1 

谢谢

正则表达式不是很好:你看,“([^&]+)”表示:“一个或多个字符,直到第一个符号AND”,而主题中没有符号AND。此外,“([^-]+)$”表示“连字符前面有一个或多个字符”,而您不打算以连字符结尾主题

试试这个:

^forum/([^-]+)-([^/]+)/(.+)$
但请注意,这实际上捕获了id和页面位置中的任何字符,因此使用

^forum/([0-9]+)-([^/]+)/([0-9]+)$
因为这只允许那些位置上的数字

另外,您可能指的是“index.php?p=forum&mod=view_posts&page=$3&name=$2&id=$1”,而不是“index.php?p=forum&mod=view_posts&page=$3&orderby=$2&id=$1”