質問: ### 前提・実現したいこと サイト全体がトップページへ移行するリダイレクト設定を行いました。 リダイレクト設定後、トップページの画像が表示されなくなってしましました。 ホームページのリニューアルに伴いトップページに移転案内ページを作成し、 サイトの配下いずれのページにアクセスしてもトップに戻るようにしたいです。 エックスサーバーのwebFTPを使用してhtaccessからコードを書きました。 特定のURLからリダイレクトを行う場合は画像が表示されていました。 ### 発生している問題・エラーメッセージ ``` 画像が表示されません。 ``` ### 該当のソースコード ``` RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} !(^/$) RewriteRule ^(.*)$ / [R=301,L] ``` ### 試したこと ・保存文字コードをUTF-8に保存。 ・画像のリンクを相対パスから絶対パスへ ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: 例えば画像が http://example.com/img/header.jpg 等のURLだとして、その画像へのアクセスもTOPページへリダイレクトされてしまうので、画像が表示されないわけです。 同じ理由で、JavaScriptやCSSも適用されていないはずです。 なので、これら「リダイレクトされてほしくないディレクトリやファイルは、リダイレクト対象から除外する」設定を書く必要があります。 ``` RewriteCond %{REQUEST_URI} !(^/img/) RewriteCond %{REQUEST_URI} !\.css$ RewriteCond %{REQUEST_URI} !\.js$ ``` ↑の書き方の場合、「/img/ディレクトリ配下」「URLの末尾が.css」「URLの末尾が.js」のいずれかであれば、リダイレクトさせない、と言う指定になります。 ご自身のRewriteCondに追記する形で指定して下さい。 当然、画像用ディレクトリのパスや、除外させたい拡張子はご自身の環境に合わせて下さい。