我遇到的问题是我需要匹配和替换 URL 中的特定字符串,而不是在查询字符串变量的标准点拆分,并且仅使用要在预期 URL 中使用的 pagevars 变量的后半部分。
在这种特殊情况下,我需要使用 .htaccess 来重定向此 URL:
http://example.com/details.php?pagevars=this-variable-id-WGZ8765
对此:
我遇到的问题是我需要匹配和替换 URL 中的特定字符串,而不是在查询字符串变量的标准点拆分,并且仅使用要在预期 URL 中使用的 pagevars 变量的后半部分。
在这种特殊情况下,我需要使用 .htaccess 来重定向此 URL:
http://example.com/details.php?pagevars=this-variable-id-WGZ8765
对此:
您必须使用RewriteCond
来分析查询字符串,任何捕获的模式都将以%N in 的形式提供RewriteRule
(就像规则本身中捕获的模式以$N的形式提供一样:
RewriteCond %{QUERY_STRING} this\-variable\-id\-(.*)$
RewriteRule ^details\.php$ /item/id-%1 [L]
类似这样的东西应该可以工作......
RewriteCond %{QUERY_STRING} \-id\-([A-Za-z0-9]+)$
RewriteRule ^details\.php$ /item/id-%1 [L]
如果没有更多关于原始 URL 中可能/可能不会发生变化的知识,很难确定 - 可能是您需要更改正则表达式的锚定方式。