古いURLを新しいURLにリダイレクトしようとしています。古いサイトはURLの変数を使用していましたが、新しいサイトはSEOフレンドリーURLを使用しています。
古いURLをリダイレクトしようとすると、正しくリダイレクトされず、404エラーが発生します。 SEOの書き換えが他の書き換え条件の失敗の原因かどうかはわかりません。
Options +FollowSymlinks RewriteEngine On
RewriteCond %{HTTP_Host} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L] RewriteRule ^(.+).html index.php?seo_title=$1 [nc]
Redirect 301 /WEBPAGE http://www.example.com/WEBPAGE.html
RewriteRule ^http://www.example.co.uk/test/test.php?c=viewtest&id=56&sat=9&mainsat=1&start=0$ http://www.example.com/NEW_URL.html
ErrorDocument 404 /PAGE_NOT_FOUND.html
質問:古いURLをリダイレクトするようにRewriteRuleを作成するにはどうすればよいですか?
私が見つけた問題は、URLが予想どおりにファイルと変数の間で分割されることでした。
したがって、?
の後のすべてがクエリ文字列として取得されます。
クエリ文字列を確認する条件を追加する必要があります(正規表現を含めることができます)
RewriteCond %{QUERY_STRING} ^viewtest&id=56&sat=9&mainsat=1&start=0$
RewriteRule ^/test/test.php$ http://www.example.com/WEBPAGE.html? [R=301,L]
また、リダイレクトされたURLの後に?
があることに注意してください。これにより、新しいURLに変数が追加されなくなります
可能であれば、特定のページでjavascriptリダイレクトを使用できます。