ダーティな URL をクリーンな URL にリダイレクトするには、本当に助けが必要です。
ダーティ URL:creative.php?beast=
クリーン URL: /mythical-creature/
現在、私の .htaccess は次のようになっています。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mythicalcreatureslist.com [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^www.mythbeasts.com [NC]
RewriteRule ^(.*)$ http://www.mythicalcreatureslist.com/$1 [L,R=301]
RewriteRule ^menu/([A-Za-z0-9-+]+)/?$ menu.php?menu=$1 [NC,L]
RewriteRule ^menu_two/([A-Za-z0-9-+]+)/?$ menu_two.php?menu=$1 [NC,L]
RewriteRule ^mythical-creature/([A-Za-z0-9-+\'%]+)/?$ creature.php?beast=$1 [NC,L]
これにより、ブラウジング時に Web サイトにきれいな URL が表示されます。これは素晴らしいことです。ただし、古いダーティ URL は、URL バーに入力してもリダイレクトされません。
例: モンゴリアン デス ワーム http://www.mythicalcreatureslist.com/creature.php?beast=Mongolian+Death+Worm
リダイレクトさせたい: http://www.mythicalcreatureslist.com/mythical-creature/Mongolian+Death+Worm
これにより、コンテンツが重複しています。私が試してみました:
RewriteRule ^/mythical-creature/([A-Za-z0-9-+\'%]+)/?$ http://www.mythicalcreatureslist.com/creature.php?beast=$1 [R=301,NC,L]
しかし、それがしたことは、汚れたものを常に使用することでした.
それから私はそれをひっくり返しました:
RewriteRule ^creature.php?beast=([A-Za-z0-9-+\'%]+)/?$ http://www.mythicalcreatureslist.com/mythical-creature/$1 [R=301,NC,L]
しかし、それはブラウジング中に 404 を引き起こし、アドレスバーに入力したときに古いダーティ URL をリダイレクトしませんでした。