1

Я хочу, чтобы один URL-адрес все еще служил из подкаталога старого домена, но перенаправлял все остальные из родительского каталога в новый. неПеренаправить все страницы в директории, кроме одного подкаталога .htaccess

www.olddomain.co.uk/directorya/directoryb -> нет редирект www.olddomain.co.uk/directorya -> www.newdomain.co.uk/directorya

Это работает, если URL является набранный с лидирующим слэшем

RewriteCond %{REQUEST_URI} !^/directorya\/directoryb [NC] 
RewriteRule ^(.*)$ http://www.newdomain.co.uk/ [L,R=301] 

Так http://www.olddomain.co.uk/directorya/directoryb/ работает, но http://www.olddomain.co.uk/directorya/directoryb терпит неудачу.

Пробовал добавил $ в конце и других коннотаций и попытался

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

из Redirect entire site except one directory to a new site - apache .htaccess

Что мне нужно сделать, чтобы получить http://www.olddomain.co.uk/directorya/directoryb/ или http://www.olddomain.co.uk/directorya/directoryb перенаправлять? (В то время как все остальные http://www.olddomain.co.uk страницы перейти к http://www.newdomain.co.uk

По причинам, я не понимаю, http://www.olddomain.co.uk/directorya/directoryb идет в Google и не перенаправляет

ответ

1

Попробуйте использовать THE_REQUEST переменную и убедитесь, что это это самое первое правило:

RewriteCond %{THE_REQUEST} !\s+/+directorya/directoryb [NC] 
RewriteRule^http://www.newdomain.co.uk/? [L,R=301] 

Test это после того, как очистить кэш браузера.

+1

Отлично, спасибо – JulianB

Смежные вопросы