htaccess не работает должным образом для дополнительного URL-адреса с большим количеством косых черт

У меня 2 сайта. Назовите это 5p_front (http://localhost/5p_front/) (Разработано в OctoberCMS) и 5p_group (http://localhost/5p_group/ ) (Разработано в CakePHP)

В 5p_front у меня есть файл .htaccess, в котором я помещаю условие, которое будет перенаправлять на веб-сайт 5p_group, как только он найдет слово, имеющее 5p_group_login в URL. Вот код ниже

.htaccess

RewriteRule ^5p_group_login.*$ http://localhost/5p_group [L,R=301]

Поэтому, если кто-то попытается перейти сюда, например, http://localhost/5p_front/5p_group_login, они будут просто перенаправлены сюда http://localhost/5p_group/.

Это отлично работает с домашней страницы и других подстраниц, таких как страница about, например, http://localhost/5p_front/we-are-5p-group.

Однако у меня есть одна внутренняя страница продукта http://localhost/5p_front/product/10, и если я наведусь пункт меню, который позволяет мне перенаправить на страницу входа, показывает этот URL-адрес http://localhost/5p_front/product/5p_group_login и, следовательно, когда я нажимаю на него, я не могу перенаправить на http://localhost/5p_group/, поскольку он переадресуется только на этот текущий URL http://localhost/5p_front/product/5p_group_login чего не должно быть.

Кроме того, «Мое меню» становится динамическим, и я использовал плагин Static Pages для создания меню, которое предоставляет OctoberCMS, и я создал ссылку меню «Вход», как показано ниже.

введите здесь описание изображения

Как я могу перенаправить URL-адрес на http://localhost/5p_group/, даже если пользователь находится на http://localhost/5p_front/product/10 и нажимает ссылку "Войти", которая показывает http://localhost/5p_front/product/5p_group_login, если я наведу на него указатель мыши.

Может ли кто-нибудь подсказать мне, что мне делать в этом сценарии.

Спасибо


person Mittul At TechnoBrave    schedule 16.12.2016    source источник


Ответы (1)


Ваше правило

RewriteRule ^5p_group_login.*$ http://localhost/5p_group [L,R=301]

при размещении в 5p_front/.htaccess повлияет только на URI, начинающиеся с /5p_front/5p_group_login (из-за ведущего ^ в вашем шаблоне), поэтому /5p_front/product/5p_group_login не будет соответствовать.

Если вы хотите переписать URL-адреса с 5p_group_login anyhwere, просто используйте:

RewriteRule 5p_group_login http://localhost/5p_group [L,R=301]
person Dusan Bajic    schedule 16.12.2016
comment
Вау .. отличное объяснение. Спасибо. - person Mittul At TechnoBrave; 16.12.2016