0

私の検索URLは長いですが、phpとmod_rewriteを使用してこれを短いURLに変更するにはどうすればよいですか?

私のURL:

mydomain.com/gosearch.php?page=1&random=742&title=test&loc1=ANY&loc2=ANY&loc3=ANY&t=ALL&st=3&app=5&image=ALL

私はToが好きです:ページ番号の後にすべて非表示になります(例では1です)

     mydomain.com/search/1/

また

     mydomain.com/search/1/742/test/ANY/ANY/ANY/ALL/3/5/ALL

ありがとう。

4

1 に答える 1

3

あなたはこのようなことをすることができます

RewriteEngine On
RewriteRule ^search/(.*)/(.*)/ /gosearch.php?page=$1&random=$2 [L]

しかし、それはかなり醜くなる可能性があり、9つのパラメータまでしか機能しません

検索するすべてのトラフィックをphpスクリプト(gosearch.php)にリダイレクトしてから、phpのリクエスト文字列やクエリ文字列を解析して適切に処理することをお勧めします。

RewriteCond %{REQUEST_URI} ^/search(.*)$
RewriteRule . /gosearch.php [L, QSA]

そしてgosearch.phpで

<?php

    $paramaters = explode( '/', $_SERVER['REQUEST_URI'] );

    print_r( $parameters );
?>

そこからそれを取る

psは、QSA/ search / 1 /から任意のクエリ文字列を追加するため、/を介して通常の方法でクエリパラメータにアクセスできます$_GET$_REQUEST

于 2012-04-13T10:56:24.570 に答える