0
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^product/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)/([a-zA-Z]+)/$ product.php?id=$1&srl=$2&item=$3&page=$4&title=$5#titleProduct

更新のために f5 ボタンを押すと、URL が残り、書き換えられません。「新しく」書き換えたリンクでアクセスしようとしましたが、うまくいきません。

4

1 に答える 1

2

うわー、それは「新しい」書き換えのためにすべてのファイルを更新する必要があるということですか? すべてのファイルには、「古い」リンクを含むさまざまなハイパーリンクが含まれています。.htaccess ファイルを書くと、すべての URL が自動的に書き換えられると思いました。

アドレスバーを変更するブラウザのリダイレクトを考えています。書き換えは、見栄えの良い URL を取得し、URI をサーバーが理解できるものに内部的に書き換えます。このプロセスのより良い説明については、この回答の上半分を参照してください。

product.phpそのため、ブラウザが実際にファイルを要求した場合にブラウザ リダイレクトを実行してから、見栄えの良い偽の URL にリダイレクトすることができます。次に、ブラウザは見栄えの良い URL の新しいリクエストを再送信し、サーバーはそれを取得し、内部的にそれを php ファイルに書き戻します (ルール)。

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /product\.php\?id=([^&]+)&srl=([^&]+)&item=([^&]+)&page=([^&]+)&title=([^&\ ]+)
RewriteRule ^product.php$ /product/%1/%2/%3/%4/%5/ [L,R=301]

これは/product.php\?id=123&srl=abc&item=qwerty&page=blah&title=somethingURI を受け取り、ブラウザを 301 で見栄えの良い URL にリダイレクトします。次に、ルールを内部的に書き直す必要があります。

とにかく、提供するリンクをより適切な URL に変更する必要があります。作業の両端を mod_rewrite に依存するのは、非常に非効率的です。

于 2012-08-10T00:00:20.560 に答える