Перенаправить сайт с помощью .htaccess, но исключить одну папку - PullRequest
54 голосов
/ 05 августа 2010

Я хочу 301 перенаправить весь сайт, но исключить все в папке с именем /uploads, которая существует в каталоге /root.

Я гуглил по этому поводу, но ничего не придумал, или я не думал, что то, что видел, было правильным.

Можем ли мы взломать это?

Ответы [ 4 ]

67 голосов
/ 05 августа 2010

Попробуйте это mod_rewrite правило:

RewriteEngine on
RewriteRule !^uploads($|/) http://example.com%{REQUEST_URI} [L,R=301]

Это правило соответствует любому URL-пути, который не начинается с /uploads или /uploads/ (ведущий / отсутствует в шаблоне из-за удаления префикса пути при использовании в файлах .htaccess) и перенаправляет запрос на соответствующий путь в example.com .

54 голосов
/ 27 августа 2012

Простой ответ. Я просто наткнулся на себя.

Вверху перед любыми другими звонками добавьте следующее

RewriteRule ^(uploads) - [L]
24 голосов
/ 05 августа 2010

Я думаю, вы хотите это:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/uploads/
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

Если вы получили 500 Internal Error, то еще раз проверьте, что у вас есть пробел между } и ! во второй строке.

10 голосов
/ 29 апреля 2016

Решение на основе мод-псевдонима

Перенаправить все, кроме определенной папки

Добавьте следующую строку в корень / .htaccess:

RedirectMatch 301 ^/((?!uploads).*)$ http://newdomain.com/$1

Это перенаправит все страницы (кроме / uploads / *) со старого домена на новый домен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...