WordPress Mod_Write перенаправить тему - PullRequest
1 голос
/ 14 сентября 2010

У меня есть плагин «Theme My Login» для WordPress 3.0.1, который заставляет страницы профиля моего пользователя быть здесь:

domain.com/login-2?action=profile

вместо здесь:

domain.com/profile

Итак, я пытаюсь исправить это с помощью mod_rewrite следующим образом:

RewriteRule ^profile /login-2?action=profile

Но, похоже, ничего не делает. Я подозреваю, что в WordPress происходит какая-то странная вещь, но я хотел спросить людей здесь, выглядит ли мое правило перезаписи правильно, прежде чем копать дальше. Я правильно сделал?

1 Ответ

0 голосов
/ 15 сентября 2010

По умолчанию я считаю, что WordPress использует значение REQUEST_URI при маршрутизации запроса.Ваше правило

RewriteRule ^profile /login-2?action=profile

... должно правильно переписать /profile в /login-2?action-profile, но WordPress не будет наблюдать это изменение, поскольку значение $_SERVER[REQUEST_URI] в PHP основано на исходном запросе, отправленномserver.

Возможно, можно обойти эту проблему, заставив WordPress использовать PATH_INFO вместо этого, изменив стандартный постоянный блок WordPress:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ index.php/$0

Можно также использовать P флаг для прокси переписанного запроса через, который обновит REQUEST_URI.Это связано с дополнительными затратами на создание нового запроса, поэтому я не уверен, что рекомендую его:

RewriteRule ^profile /login-2?action=profile [P]
...