サイトを移動したところ、古いページの一部がまだ表示されています。古いURL構造の例を次に示します。
http://mydomain.com/text_version/personal_and_people_development.php
そして、どのようにリダイレクトしたいのか:
http://mydomain.com/personal-and-people-development/
私がやりたいのは、パス/text_version/
の/text_version
一部を削除してフォルダー内の任意のページを301リダイレクトし、すべての下線をハイフンに変換し、.php
ファイル拡張子を末尾のスラッシュに置き換えることです。
また、ユーザーにサブドメインの使用を許可していることにも注意してください。将来、アクセスwww.
が必要になる可能性があります。https://
このようにフォルダ全体の301リダイレクトを行うことは可能ですか、それとも個々のページを指定する必要がありますか?もしそうなら、私はまたはがあまり得意ではないので、誰かが私にポインタを与えることができmod_rewrite
ますregex
。
更新:これは、他の人のコードをつなぎ合わせたために、これまで何とかまとめることができたものです。これは、サブフォルダーにある.htaccess
ファイルに保存されます。/text_version
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L, QSA]
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://mydomain.com/$1/ [L,R=301]
RewriteRule (.*)_(.*) $1-$2 [N]
ただし、これは次のように変換されます。
http://mydomain.com/text_version/personal_and_people_development.php
に
http://mydomain.com/personal-and-people-development.php/