我遇到的问题是我需要匹配并替换URL中的特定字符串,而不是在查询字符串变量的标准点进行分割,并仅使用第二部分pagevars变量用于预期的URL。使用mod_rewrite替换htaccess中的特定字符串
在我需要使用的.htaccess重定向此URL这种特殊情况:
http://example.com/details.php?pagevars=this-variable-id-WGZ8765
这样:
http://example.com/item/id-WGZ8765
我遇到的问题是我需要匹配并替换URL中的特定字符串,而不是在查询字符串变量的标准点进行分割,并仅使用第二部分pagevars变量用于预期的URL。使用mod_rewrite替换htaccess中的特定字符串
在我需要使用的.htaccess重定向此URL这种特殊情况:
http://example.com/details.php?pagevars=this-variable-id-WGZ8765
这样:
http://example.com/item/id-WGZ8765
你必须使用RewriteCond
来分析查询字符串,任何摄像图案将作为%N在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中可能/不会改变的知识 - 这可能是因为您需要改变正则表达式的锚定方式。
可以更改的URL的唯一部分是最后一部分在连字符之后,在这种情况下'WGZ8765' – 2013-03-01 11:21:18
有没有一种模式,或者你只想重写这个URL? – 2013-03-01 11:09:43
URL中唯一可以改变的部分是连字符后面的最后部分,在本例中为'WGZ8765'。是一样的 – 2013-03-01 11:27:52