1

一部のページのリダイレクトで問題が発生しました。私の書き換えルールは次のようになります(例):

RewriteRule /index.php?option=com_content&view=article&id=47:article-keyword&catid=8:position$ article-keyword.html [R=301,L]

しかし、うまくいきません。いくつかの異なる組み合わせを試してみましたが、まだ何もしていません。解決策はありますか?

4

1 に答える 1

0

更新: 以下の 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 へのリクエストのみをリダイレクトします。

于 2012-07-09T15:21:49.170 に答える