0

目標: クエリ文字列を見栄えの良い URL に変換すること。

詳細: この URL を変更します。 http://www.mywebsite.com/static-directory/index.php?state=florida&city=tallahassee

これに: http://www.mywebsite.com/static-directory/florida/tallahassee

私が試したこと: まあ、ほぼすべて。私の最新の検索は、このチュートリアルを思いつきました...

.htaccessルート ディレクトリ (httpdocs)にファイルがあります。

スタック オーバーフローに関する正しい回答の質問を教えてください。

ありがとう。

4

1 に答える 1

2

質問:
「この URL.../static-directory/index.php?state=florida&city=tallahassee
を次の URL に変更してください: .../static-directory/florida/tallahassee"

質問によると、クエリを含む 1 番目の URL (The Request) をクエリのない 2 番目の URL に変換するだけで済みます。

ルート ディレクトリにある 1 つの .htaccess ファイルでそれを実現する方法を次に示します。

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} /static-directory/index.php\?state=([^&]+)&city=([^\s&]+) [NC]
RewriteRule  ^static-directory/index.php  /static-directory/%1/%2? [R=301,L,NC]

ただし、OP が全体のアイデアについて言及するのを忘れた場合に備えて、「きれいな」URL を取得するためにクエリを削除することですが、元の URL からデータを取得するには、ルールセットに次の 2 行を追加します。

RewriteCond %{REQUEST_URI}  !index\.php [NC]
RewriteRule  ^static-directory/([^/]+)/([^/]+) /static-directory/index.php?state=$1&city=$2 [L]
于 2013-05-28T03:18:53.530 に答える