私のウェブサイトには、登録されたチューターへのリンクがあります。そのリンクはこのようなものです
http://www.myweb.com/profiles/tutors/index.php?tutorCode=1285&tutorName=Robert%20Sakoo&city=Sidny
したがって、このリンクを次のように書き直す必要があります。
www.myweb.com/1285/Rober Sakoo
上記の元のURLを予想されるURLに書き換えることは可能ですか?
私のウェブサイトには、登録されたチューターへのリンクがあります。そのリンクはこのようなものです
http://www.myweb.com/profiles/tutors/index.php?tutorCode=1285&tutorName=Robert%20Sakoo&city=Sidny
したがって、このリンクを次のように書き直す必要があります。
www.myweb.com/1285/Rober Sakoo
上記の元のURLを予想されるURLに書き換えることは可能ですか?
URL と書き換えがどのように機能するかについて混乱しているようです。「this2をthis1に書き換える必要がある」という概念は、次のことを意味します。
これらすべての重要な概念は、ブラウザが "this2" リンクを要求し、サーバーがその要求を "this1" に内部的に書き換えることです。しかし、これはおそらくあなたが望むものではありません。なぜなら、醜い URL を取り込んで見栄えの良い URL に書き直すことになり、親しみやすい URL の要点が失われるからです。
特にこのあたりでは、「この URL をこの URL に変更したい」などの問い合わせや、2 段階のリダイレクト プロセスがある場合の書き換えの依頼が多すぎます。これは、 this1 を取得してブラウザをthis2にリダイレクトし、URL アドレス バーがthis2に変更される 2 番目のステップ (まったく要求していません)です。
したがって、このラウンドアバウト畳み込み全体は、ブラウザーがthis1にアクセスしようとすると、this2にリダイレクトされますが、実際にはthis1からコンテンツが提供されます。
だから私はこれがあなたが望むものでなければならないと思います。これをhtaccessファイルに入れてみてください:
RewriteEngine On
# check if the actual request if for "this1"
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /profiles/tutors/index.php\?tutorCode=([0-9]+)&tutorName=([^&]+)&?([^\ ]+)
# redirect to "this2"
RewriteRule ^profiles/tutors/index\.php /%1/%2/?%3 [R=301,L,NE]
# now rewrite "this2" back to "this1"
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/(.+)/$ /profiles/tutors/index.php?tutorCode=$1&tutorName=$2 [L,QSA]
city
パラメータはフレンドリ URL でエンコードされないため、クエリ文字列の一部として残されることに注意してください。分かりやすい URL が次のようになるようにこれを変更でき/id/name/city/
ます/id/name/
。
それはどこかに近いでしょう:
RewriteEngine on
RewriteRule ^([0-9]+)/(.+)$ /profiles/tutors/index.php?tutorCode=$1&tutorName=$2 [NC,QSA]
あなたはそれについて何をすべきかを指定していないので、私はあなたのcity
パラメーターを考慮しませんでした、それでQSA
ルールに追加され(クエリ文字列追加)、GETのパラメーターはまだスクリプトに渡されます。