我试图仅在特定参数上用连字符替换下划线,然后执行301重定向。我已经找到了如何替换它们并将其应用于整个URL的方法,但无法弄清楚如何仅针对一个参数替换它们。现在我有这个:
RewriteCond %{QUERY_STRING} ^state=([a-zA-Z_]+)&city=([a-zA-Z_]+)$
RewriteRule city.html /find/this/in/%2/%1/? [L,R=301]
此301会将其重定向:mysite.com/city.html?state=va&city=dunn_loring
为此:mysite.com/find/this/in/dunn_loring/va/
我希望它改为301重定向到:mysite.com/find/this/in/dunn-loring/va/
本质上,我只想在我上面的htaccess示例中用连字符将下划线替换为'%1'部分。预先感谢您的任何指示
下面的解决方案对下划线的数量没有限制。第一个RewriteRule替换了看到的第一个下划线,并且[N]标志导致处理重新开始,因此该规则将一直适用,直到所有下划线都被替换为止。当不再有下划线时,将发出重定向。
RewriteCond %{QUERY_STRING} ^state=([a-zA-Z_]+)&city=([a-zA-Z-]+)_([a-zA-Z_-]+)$
RewriteRule city.html /city.html?state=%1&city=%2-%3 [N]
RewriteCond %{QUERY_STRING} ^state=([a-zA-Z_]+)&city=([a-zA-Z-]+)$
RewriteRule city.html /find/this/in/%2/%1/? [L,R=301]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句