0

私は検索エンジンのようなこのサイトを持っています私が検索をタイプするとき、URLはmysite.com/search/free/**video/keyword**.html代わりにのように見えます、mysite.com/?search=**keyword**&type=**video**そして私はこれに関して小さな問題を抱えています。たとえば、検索タグにスペース+または-が含まれている場合、URLは書き換えられません。?search = key + word&type = videoのようなクエリ文字列のURL を取得しましたが、これを取り除く方法がわかりません。これは私のhtaccessです。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase / 
RewriteCond %{QUERY_STRING} ^search=(\w+)&type=(\w+)$
RewriteRule ^ http://mysite.com\/search\/free\/%2\/%1.html? [R,L,B]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^search/(.*)/(.*)/(.*).html?$ index.php?search=$1&page=$2&type=$3 [L]

${escape:$1}で$1を変更して追加しようとしましたが、httpd.confファイルにRewriteMapエスケープint:escapeを追加しましたが、それでもうまくいきませんでした。

4

1 に答える 1

1

最初のルールを次のように変更してみてください。

RewriteCond %{QUERY_STRING} ^search=([^&]+)&type=([^&]+)$
RewriteRule ^ http://mysite.com\/search\/free\/%2\/%1.html? [R,L,NE]
于 2012-10-08T23:06:37.173 に答える