htaccess ファイルに、php クエリ文字列をパスに変換するルールがいくつかあります。次のようになります。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?(.*?)/?$ index.php?s=$1 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ index\.php\?s=([^\s]*)
RewriteRule ^/?(.*?)/?$ %1?%2%3 [L,R=301]
これで、mysite.com/index.php?s=whatever などのすべての URL が mysite.com/whatever に変換され、期待どおりに機能するようになりました。ただし、私のサイトは以前は html にあり、もう存在しない html ページへのリンクがまだたくさんあるため、それらを新しい php 対応ページにリダイレクトさせたいと考えています。したがって、誰かが mysite.com/whatever.html というリンクをクリックすると、自動的に mysite.com/whatever に移動するはずです。以下のコードを試しました:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html?$ / [NC,R,L]
しかし、両方を組み合わせる方法がわかりません。ヒントをお願いします。
ありがとうございました。