クエリ文字列のリンクスキーム(つまり、?page = aboutまたは?page = individual & i = johndoe)に基づいて作成されたウェブサイト全体があります。もちろん、振り返ってみると、SEOにもっと親しみやすい(つまり、/ about/or/individual/johndoe /)ように、別の(美しい)スキームを使用することに決めました。美しいクエリ文字列URLの使い方
Apacheの.htaccessファイルでmod_rewriteを使用して、サイト全体のすべてのリンクを変更することなくこの変更を行う方法はありますか?たとえば、?page = aboutへのリンクをクリックすると、/ about /にリダイレクトされます。
私が試したコードは、/ about/as?page = aboutと表示されますが、リダイレクトは必要ありません。そして、正直言って、私はmod_rewriteで何の仕事もしていない(それは少し威圧している)ので、私は間違った方向に行っていると感じています。それにもかかわらず、これまで私がこれまで取り組んできたコードは次のとおりです。
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_]+)$ /$1/ [R]
RewriteRule ^([a-zA-Z0-9_]+)/$ /index.php?page=$1
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ /$1/$2/ [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/$ /index.php?page=$1&i=$2
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/$ /index.php?page=$1&id=$2
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/$ /index.php?page=$1&bctid=$2
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/$ /index.php?page=$1&bclid=$2
私はどんな助けにも大いに感謝します。
は、機能しません同じパターンのために一致する複数の書き換えルールを持ちますあなたの例では、最初のルールだけがApacheによって選択されるため、下の4はあなたの例のルールを書き換えます。さらに、永久リダイレクトには301リダイレクトを使用する必要があります。 –