我正在尝试对我的网站执行mod重写。而且我曾经做过很多次重写。当然,在我满足新的要求,在 .html 之后创建带有查询字符串的重写URL之前,我非常重要。
示例 - http://kypseli/admin/catagory.html?parent_id=1
我用过这个正则表达式。
RewriteRule ^([A-Za-z0-9-/_]+).([html])/?$ index.php?rt=$1&%{QUERY_STRING}
但是查询字符串值(parent_id)没有传递。
这是完美的 .html 部分。
http://kypseli/admin/catagory/?parent_id=1
但我希望它与 .html 部分一样,因为我在WWW的每个地方都发现了很多相同的技术用法。这是一个例子
http://www.espncricinfo.com/ci/content/video_audio/559158.html?genre=46
有人可以帮忙。
答案 0 :(得分:3)
如果要将第一个查询中的所有查询字符串元素添加到重写的查询中,则需要将[QSA]
标记添加到rewriteRule,如果您更喜欢长描述,则需要[qsappend]
标签
RewriteRule ^([A-Za-z0-9-/_]+)/?$ index.php?rt=$1 [qsappend]
现在我并不完全理解你对'.html'的意思,但我希望这已经足够了。
修改强>
你的问题可能是点,它应该被转义\.
并且它应该在optionnal部分,如果它是optionall所以:
RewriteRule ^([A-Za-z0-9-/_]+)/?$ index.php?rt=$1 [qsappend]
RewriteRule ^([A-Za-z0-9-/_]+)\.html?$ index.php?rt=$1 [qsappend]
或者,如果您只想要一个规则,这应该有效(未经测试)
RewriteRule ^([A-Za-z0-9-/_]+)([\.html|/])?$ index.php?rt=$1 [qsappend]
并且您不确定在rewriteRule中是否真的需要?
,即使没有查询字符串,您也可能希望应用它。