0

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]

しかし、両方を組み合わせる方法がわかりません。ヒントをお願いします。

ありがとうございました。

4

1 に答える 1

0

このコードを .htaccess に追加してみてください:

RewriteRule ^([A-Za-z0-9]+).html$ http://mysite.com/$1 [R=301,L]
于 2013-06-06T07:50:25.973 に答える