У меня есть файл .htaccess на моем старом домене, который включает перенаправления, которые не перенаправляют, как я хотел.
Если я ввожу olddomain.com/about-us.html, перенаправление отправляет пользователя на newdomain.com/about-us.html. Я пытаюсь направить пользователя на newdomain.com/about.
Ниже мой файл .htaccess с одним примером перенаправления.
Кто-нибудь видит, что я делаю не так?
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC]
RewriteCond %{THE_REQUEST} !/administrator [NC]
RewriteRule /about-us.html https://newdomain.com/about [L,R=301]
Redirect 301 /about-us.html https://newdomain.com/about
RewriteRule ^ https://newdomain.com%{REQUEST_URI} [L,R=301,NE]
Вкладка сети:
@anubhava Проверьте мои изменения в моем вопросе. Я разместил его изображение.
Получите это так:
RewriteEngine On
RewriteRule ^about-us\.html$ https://newdomain.com/about [L,R=301,NC]
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC]
RewriteCond %{THE_REQUEST} !/administrator [NC]
RewriteRule ^ https://newdomain.com%{REQUEST_URI} [L,R=301,NE]
Спасибо! Это сработало. Могу ли я сделать это для более глубоких файлов в подпапках? RewriteRule /about-us/employees\.html$
Не используйте косую черту в начале. Так что используйте: RewriteRule ^about-us/employees\.html$ /something [L,R=301,NC]
Я что делаю неправильно? Эта конкретная строка не работает. Пробовал разные браузеры. RewriteRule ^about-us/t-slotted-aluminum-profiles\.html$ https://newdomain.com/profile [L,R=301,NC]
URL - https://mbkitsystems.com/about-us/t-slotted-aluminum-profiles
. В новом домене есть еще один htaccess, но нет перенаправлений.
Ваше правило соответствует .html
в конце, поэтому ваш исходный URL должен быть: https://mbkitsystems.com/about-us/t-slotted-aluminum-profiles.html
Попался. Итак, если бы я хотел, чтобы ссылки включали как html-ссылки, так и нерасширяющие ссылки, мне нужно было бы разместить оба?
RewriteRule ^about-us/t-slotted-aluminum-profiles(?:\.html)?$ https://newdomain.com/profile [L,R=301,NC]
делает .html
необязательным
Идеально. Спасибо за помощь! Очень признателен.
Разве эта строка не должна перенаправлять все остальное, что не указано? RewriteRule ^ https://newdomain.com%{REQUEST_URI} [L,R=301,NE]
@anubhava Да, я все прояснил.