如何在我的网址中将 + 替换为 -。我应该在我的 htacces 中添加什么代码来摆脱 + 并用减号替换它。
RewriteCond %{QUERY_STRING} ^search=([^&]+)$
RewriteRule ^ http://mysite.com\/Download\/free\/%2.html? [R,L,NE]
如果我键入包含空格的搜索,则每个空格都变为 +,而我想要 -。
我假设 URL: 的bla+bla+bla部分http://mysite.com/Download/free/bla+bla+bla.html
来自查询字符串search=
的值。根据您可能拥有的其他规则,您可以通过 2 种不同的方式来解决此问题。您可以先从查询字符串中删除所有空格,然后再将其重定向到 .html 文件。或者您可以将查询字符串重写为 URI,然后在重定向之前删除空格。它会是这样的:
RewriteCond %{QUERY_STRING} ^search=(.*?)(\+|%20)(.*)$
RewriteRule ^ /?search=%1-%3 [L,NE]
RewriteCond %{QUERY_STRING} !(\+|%20)
RewriteCond %{QUERY_STRING} ^search=([^&]+)$
RewriteRule ^ http://mysite.com\/Download\/free\/%1.html? [R,L,NE]
请注意,在您的 htaccess 中,您有%2反向引用,它似乎没有引用任何内容。
或者先重写为URI,然后重定向:
RewriteCond %{QUERY_STRING} ^search=([^&]+)$
RewriteRule ^ /Download\/free\/%1.html? [L,NE]
RewriteCond %{REQUEST_URI} !(\ )
RewriteRule ^ - [L,R]
RewriteRule ^(.*)\ (.*)$ /$1-$2 [L]