12

私はこの質問を検索しましたが、特定のニーズに合わせて調整するのが難しいと思われる本当に特定の答えにしか出くわしません。

私が書き直そうとしているURLがこれだとしましょう:

http://www.example.org/test.php?whatever=something

次のように表示されるように書き直したいと思います。

http://www.example.org/test/something

これどうやってするの?

4

1 に答える 1

27

/test/somethingコンテンツが提供されるように内部的に書き換えるなどのリクエストをルーティングするに/test.php?whatever=somethingは、ドキュメント ルートの htaccess ファイルで次のルールを使用します。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?test/(.*?)/?$ /test.php?whatever=$1 [L]

そして、クエリ文字列の URL を見栄えの良い URL にリダイレクトするには、次のようにします。

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /test\.php\?whatever=([^\&\ ]+)
RewriteRule ^/?test\.php$ /test/%1? [L,R=301]
于 2012-10-22T00:00:00.743 に答える