我正在尝试将网址重写为以下网址
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
由于
答案 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"