一部のページのリダイレクトで問題が発生しました。私の書き換えルールは次のようになります(例):
RewriteRule /index.php?option=com_content&view=article&id=47:article-keyword&catid=8:position$ article-keyword.html [R=301,L]
しかし、うまくいきません。いくつかの異なる組み合わせを試してみましたが、まだ何もしていません。解決策はありますか?
一部のページのリダイレクトで問題が発生しました。私の書き換えルールは次のようになります(例):
RewriteRule /index.php?option=com_content&view=article&id=47:article-keyword&catid=8:position$ article-keyword.html [R=301,L]
しかし、うまくいきません。いくつかの異なる組み合わせを試してみましたが、まだ何もしていません。解決策はありますか?
更新: 以下の RewriteRule は正しくありません。詳細については、2012 年 7 月 9 日の更新を参照してください
RewriteRules は常に相対的であることを読んだので、試してみてください。
RewriteRule ^index\.php\?option=com_content&view=article&id=47:article-keyword&catid=8:position$ article-keyword.html [R=301,L]`
これはにリダイレクト/index.php?option=com_content&view=article&id=47:article-keyword&catid=8:position
する必要がありますarticle-keyword.html
は^
文字列の先頭を示します。Apache の RewriteRule の詳細については、http: //www.noupe.com/php/10-mod_rewrite-rules-you-should-know.html を参照してください。
更新 - 2012-07-08
OK、Apache のドキュメントを読んだ後、RewriteRule はクエリ文字列と一致しません。クエリ文字列内のデータを照合するには、aRewriteCond
と%QUERY_STRING
変数を使用する必要があります。
成功!以下は私のために働いた!
RewriteCond %{QUERY_STRING} option=com_content&view=article&id=47:article-keyword&catid=8:position
RewriteRule ^index\.php$ article-keyword.html? [R=301,L]
これはにリダイレクトさhttp://site.domain.com/index.php?option=com_content&view=article&id=47:article-keyword&catid=8:position
れましたhttp://site.domain.com/article-keyword.html
これは、問題のクエリ文字列を持つ index.php へのリクエストのみをリダイレクトします。