URL の + を - に置き換えるにはどうすればよいですか。+ を削除してマイナスに置き換えるには、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]