使用mod_rewrite替换htaccess中的特定字符串

时间:2013-03-01 11:02:30

标签: regex .htaccess mod-rewrite url-rewriting

我遇到的问题是我需要匹配并替换URL中的特定字符串,而不是在查询字符串变量的标准点处拆分,并且仅使用pagevars变量的后半部分来在预期中使用URL。

在这种特殊情况下,我需要使用.htaccess重定向此URL:

http://example.com/details.php?pagevars=this-variable-id-WGZ8765

到此:

http://example.com/item/id-WGZ8765

2 个答案:

答案 0 :(得分:2)

您必须使用RewriteCond来分析查询字符串,任何捕获的模式都将在RewriteRule中以%N 的形式提供(正如规则本身中捕获的模式一样)可用 $ N

RewriteCond %{QUERY_STRING} this\-variable\-id\-(.*)$
RewriteRule ^details\.php$ /item/id-%1 [L]

答案 1 :(得分:1)

有些事情应该有效......

RewriteCond %{QUERY_STRING} \-id\-([A-Za-z0-9]+)$
RewriteRule ^details\.php$ /item/id-%1 [L]

如果没有更多关于原始URL中可能/可能不会改变的知识,很难确定 - 可能需要改变正则表达式的锚定方式。