URL重写3个参数的论坛.htaccess

时间:2012-03-07 02:13:47

标签: .htaccess

我正在尝试将网址重写为以下网址

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 

由于

1 个答案:

答案 0 :(得分:1)

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

试试这个:

^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&页= $ 3及的OrderBy = $ 2及ID = $ 1"