Webサイト全体を301リダイレクトしたいが、/uploads
ディレクトリにある/root
というフォルダー内のすべてを除外したい。
私はこれをグーグルで調べましたが、何も思いつきませんでした。または、見たものが正しいとは思いませんでした。
これをクラックできますか?
これを試してください mod_rewrite ルール:
RewriteEngine on
RewriteRule !^uploads($|/) http://example.com%{REQUEST_URI} [L,R=301]
このルールは、notが/uploads
または/uploads/
(先頭の/
は、.htaccessファイルで使用された場合にパスプレフィックスが削除されるためパターンに欠落しており、リクエストをexample.comの対応するパスにリダイレクトします。
単純な答え私は自分自身につまずいた。
他の呼び出しの前の上部に次を追加します
RewriteRule ^(uploads) - [L]
これが欲しいと思う:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/uploads/
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
あなたが取得する場合 500 Internal Error
次に、2行目の}と!の間にスペースがあることを再確認します。
Mod-aliasベースのソリューション
特定のフォルダー以外のすべてをリダイレクトする
Root/.htaccessに次の行を追加します。
RedirectMatch 301 ^/((?!uploads).*)$ http://newdomain.com/$1
これにより、すべてのページ(/ uploads/*を除く)が古いドメインから新しいドメインにリダイレクトされます。