Перенаправить сайт с .htaccess, но исключить одну папку
Я хочу 301 перенаправить весь сайт, но исключить все в папке с именем /uploads
которая существует в каталоге /root
.
Я гуглил по этому поводу, но ничего не придумал, или я не думал, что то, что я видел, было правильным.
Можем ли мы взломать это?
Ответы
Ответ 1
Попробуйте mod_rewrite правило:
RewriteEngine on
RewriteRule !^uploads($|/) http://example.com%{REQUEST_URI} [L,R=301]
Это правило соответствует любому пути URL-адреса, который не начинается с /uploads
или /uploads/
(в шаблоне отсутствует ведущий /
из-за удаления префикса пути при использовании в файлах .htaccess) и перенаправляет запрос на соответствующий путь в example.com.
Ответ 2
Простой ответ Я просто наткнулся на себя.
В верхней части перед любыми другими вызовами добавьте следующий
RewriteRule ^(uploads) - [L]
Ответ 3
Я думаю, вы этого хотите:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/uploads/
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
Если вы получите 500 Internal Error
, то дважды проверьте, что у вас есть пробел между } и ! во второй строке.
Ответ 4
Решение на основе mod-alias
Перенаправить все, кроме определенной папки
Добавьте следующую строку в ваш root/.htaccess:
RedirectMatch 301 ^/((?!uploads).*)$ http://newdomain.com/$1
Это перенаправит все страницы (исключая/uploads/*) из старого домена в новый домен.