0

我正在尝试制定重写规则,将这个长网址重写为对 SEO 友好的网址。但是,我的规则不起作用,目标 url 变成了 404 页面。我会很感激任何帮助。谢谢!

这是原始 URL 的示例

http://www.mydomain.com/index.php?module=product&pId=102&id=14495&category=computer/DELL&start=0/

这是我的重写规则

RewriteRule ^module/([^/] )/pId/([^/] )/id/([^/] )/category/([^/] )/start/([^/]*)$ /index .php?module=$1&pId=$2&id=$3&category=$4&start=$5 [L]

这是转换后的 URL

http://www.mydomain.com/index/module/product/pId/102/id/14495/category/computer/DELL/start/0/

4

1 回答 1

1

乍一看,您正在匹配/start/[^/]*$. 但是您的 URL 包含一个尾部正斜杠start/0/,您的正则表达式将其排除在外。

因此,最好是允许使用备用斜线,/?或者更确切地说,通过允许所有内容使最后一个匹配模式完全不可感知/start/(.*)$

但无论如何,仅仅删除文件扩展名并用与号和等号交换正斜杠并不能获得更好或用户友好的 URL。目标应该是参数合并以提高可读性。现代搜索引擎并不真正关心 GET 参数。

于 2012-10-07T20:51:47.520 回答