Я использую кодовый указатель и мне нужно перенаправить URL.У меня есть два URL, которые выглядят следующим образом:
https://example.com/contact-us/ https://example.com/about-us/who-we-are/
У меня нет имени или представления контроллера contact и about-us/who-we-are/ в моем проекте codeignator.
contact
about-us/who-we-are/
Давайте поговорим о существующем URL
Я удаляю index.php и имя контроллера из URL.
Итак, мой старый URL-адрес
https://example.com/index.php/Menu_control/aboutus
Теперь новый URL-адрес
https://example.com/aboutus //$route['(:any)'] = 'Menu_control/$1';//remove the controller name
Теперь, когда пользователь вводит URL-адрес https://example.com/contact-us/, он должен быть перенаправлен на https://example.com/aboutus/
https://example.com/contact-us/
https://example.com/aboutus/
То же, что и на моем втором URL https://example.com/about-us/who-we-are/ для перенаправления на https://example.com/services/
https://example.com/about-us/who-we-are/
https://example.com/services/
Я попробовал какой-то код в .htaccess, но он не работает для меня.
Redirect 301 "https://example.com/contact/" "https://example.com/aboutus/"
Не могли бы вы помочь мне в этом вопросе?
Наконец я нашел свой ответ.Я не знаю, лучше это или нет, но решил мою проблему.
Я добавил код в .htaccess
RewriteRule ^contact-us/ https://example.com/aboutus [R=301,L] RewriteRule ^about-us/who-we-are/ https://example.com/services/ [R=301,L]
Когда пользователь вводит URL https://example.com/contact-us/, он перенаправляется на https://example.com/aboutus
https://example.com/aboutus
Директива Apache Redirect должна работать.Я думаю, что неудачные попытки его использования связаны с синтаксическими ошибками.Вторым аргументом (после статуса) должен быть URL-путь , а не URL .Тонкое, но важное различие.
Redirect
Попробуйте это в .htaccess
.htaccess
Redirect 301 "/contact" "https://example.com/aboutus" Redirect 301 "/about-us/who-we-are" "https://example.com/services"
И, как я уверен, вы знаете, но я вынужден указать, убедитесь, что "модуль "псевдоним" (mod_alias) включен.
Добавление RewriteRrule в начало .htaccess после того, как RewriteBase / файл решил проблему.
RewriteRule ^foo/$ /foo/bar [R=301,L]