mod_rewrite для страницы WordPress не работает

У меня есть сайт WordPress и пользовательский сайт, и я отправляю пользователя с сайта WordPress на пользовательский сайт, когда они переходят по определенному URL-адресу. Допустим, основной сайт WP находится по адресу www.example.com. Если кто-то переходит на http://example.com/p/M12345, мы хотим отправить его на https://my.example.com/myexample/members/login.html?login=M12345. Я подумал, что лучший способ сделать это — использовать mod_rewrite в файле .htaccess.

Я попытался настроить это в основном файле .htaccess, но ничего не получилось. Сайт WP по адресу www.example.com использует плагин перенаправления, который обычно позаботится об этом, но на прошлой неделе он испортил весь наш сайт, поэтому я не хочу продолжать его использовать. Я хотел бы использовать файл .htaccess, так как это кажется правильным способом сделать это.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(\/p\/)([mM]\d{5})$ https://my.example.com/myexample/members/login.html?login=$2 [R=301,L]
</IfModule>

Несколько вещей, которые мы пробовали:

  • добавление флагов типа [NC,R=301,L], [L,QSA] и других

  • изменил RewriteRule на Redirect 301 и снял флаги

  • добавлен RewriteCond ^(/p/)$, думая, что это произойдет только на страницах example.com/p/

Каков правильный способ заставить это работать?


person mark    schedule 06.09.2016    source источник
comment
Никогда не тестируйте с помощью R=301!   -  person Olaf Dietsche    schedule 06.09.2016


Ответы (1)


Начальная косая черта не совпадает в .htaccess, и перед p есть дополнительная [. Также нет необходимости экранировать /:

RewriteEngine On
RewriteRule ^p/([mM]\d{5})/?$ https://my.example.com/myexample/members/login.html?login=$1 [R=301,L]
person anubhava    schedule 06.09.2016
comment
Ой, [ было опечаткой. Этого не было в моем обычном правиле (я изменил его, чтобы иметь больше смысла в вопросе, чем мой фактический вариант использования). Во всяком случае, я не знал, что ведущая косая черта не соответствует. После его удаления все работает нормально. Спасибо! Я ненавижу, когда что-то такое маленькое и глупое портит весь твой день. - person mark; 06.09.2016