特定ディレクトリを301リダイレクトさせない(除外)方法とその「.htaccess」記述
記事公開日:2015年2月25日
最終更新日:2017年3月8日
今日も半日とある事で時間を費やした。
それはある特定のディレクトリを301リダイレクトさせないようにする為だ。
別の言い方をすればリダイレクトを除外する方法だ。
Sponsored Link
先日の記事でお気づきの人もいるかもしれないどこの数日間、ドメイン有効期限切れなどのタイミングもあり、色々とサイトを別のサーバーに載せ替えしている最中だ。
その中の1つのサイトにうっかり忘れていたのがCyfonsを導入している事だった。
301リダイレクトで上手い具合に転送されるのはイイがそこのサイトがCyfonsと連動していたから問題発生。
そのディレクトリも一緒に転送先へリダイレクトされ、そのリスト取りのページが表示されない。
何度も何度もエラーがでた。ネット上にリダイレクト除外の.htaccessファイルの記述方法も見つけたがなぜか『500internal server error』もしくはその他のページはリダイレクトできるがその特定のディレクトリページへアクセスするとしばらくフリーズ、そして『500internal server error』
とりあえず特定ページだけをリダイレクトする事が可能なのは分かった。
その記述がコレ↓
▼ここから▼
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^(除外させたいディレクトリ)
RewriteRule ^$ https://転送先サイトURL/ [R=301,L]
▲ここまで▲
今回厄介だったのは上記の記述をFFFTPにアップロードするとなぜか改行されず、一列に並んでメモ表示される事だ。以前もそれが原因で.htaccessが上手く機能しなかったのを覚えている。ようやくその改善方法を見つけた。
TeraPad上に上記の記述をした後に
「ファイル」⇒「文字/改行コード指定保存」⇒「名前を付けて保存」⇒「OK」
それでアップロードすると無事に改行されるようになった。
しかしなぜか特定ページは同じエラー表示。。。
上の.htaccessの記述は結果的に正しいモノですが、ネット上には色々と適当な情報も多い。
このような間違った記述で記載されていたサイトもあった。
間違い※3行目)
RewriteCond %{REQUEST_URI} !(^/除外ディレクトリ名/)
↓(正しくは)
RewriteCond %{REQUEST_URI} !^(除外させたいディレクトリ)
!(^/ はダメで !^( が正しいです。スペース1つの違いだけでも500エラーが帰ってくるとの助言サイトを見つける事ができようやく特定ディレクトリを301リダイレクトで除外する事に成功しました。
この度、参考になった2サイト↓
①https://snap.hamazo.tv/e4442804.html
②https://www.atyks.org/blog/detail/2011-08-31-2
改めて「.htaccess」の正しい記述です。↓
▼ここから▼
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^(Cyfons)
RewriteRule ^$ https://転送先サイトURL/ [R=301,L]
▲ここまで▲
コメントフォーム