2

すでにこの行を含む htaccess で:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)$ index.php?page=$1 [QSA]

元の URL を書き換えます。

http://www.domain.com/index.php?page=this-is-the-title

http://www.domain.com/this-is-the-tile

私の質問は、文字列 index.php?page= を持つ元の URL がまだアクセス可能であり、それらの前後に追加できる行がある場合、または既にそこにある行を変更して、301 にリダイレクトすることです。 2 番目の種類の 1 つの URL であるため、誰かがアクセスしようとすると、ブラウザーはインデックスとクエリ文字列のない URL を自動的に読み込みます。

qsa 行に ar=301 フラグを追加して簡単に試してみましたが、500 エラーですべてが壊れました。

4

1 に答える 1

1

はい、次の追加ルールが必要です。

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php\?page=([^\s&]+) [NC]
RewriteRule ^ /%1? [R=301,L]
于 2013-10-29T21:20:51.130 に答える