2

URL の + を - に置き換えるにはどうすればよいですか。+ を削除してマイナスに置き換えるには、htacces にどのコードを追加する必要がありますか。

RewriteCond %{QUERY_STRING} ^search=([^&]+)$
RewriteRule ^ http://mysite.com\/Download\/free\/%2.html? [R,L,NE]

スペースを含む検索を入力すると、すべてのスペースが + になり、- が必要になります。

4

1 に答える 1

4

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]
于 2012-11-02T10:38:17.007 に答える