Модификация CakePHP-резидентных перенаправлений Wordpress с помощью mod_rewrite - PullRequest
1 голос
/ 10 октября 2009

У меня есть сайт CakePHP, который содержит ванильную установку Wordpress. Он живет в /app/webroot/blog/. У меня странная проблема.

У меня есть сайт, настроенный через переписывание модов, чтобы перенаправить все запросы на /app/webroot/blog на /blog/. Причина этого заключается в том, что Wordpress либо выдает ошибки, либо не отображает контент, когда пользователь посещает его по пути app/webroot, и он прекрасно работает, если вы посещаете его по адресу /blog/. Он также перенаправит пользователя на /app/webroot/blog, если он попытается посетить /blog без косой черты, поэтому мы также добавили это. Вот правила mod_rewrite, которые мы используем для достижения этой цели:

RewriteRule    ^blog$ blog/ [L]
RewriteRule    ^app/webroot/blog/(.*)$ blog/$1 [L]

Когда пользователь пытается посетить раздел администрирования Wordpress, но не проходит аутентификацию, он отправляет их на страницу /wp-login.php и отправляет вдоль параметра строки запроса с именем redirect_to, который содержит URL-адрес, к которому пользователь первоначально пытался обратиться. перед тем, как попросить подтвердить подлинность. Этот URL содержит полный путь (/app/webroot/blog/...) вместо простого перехода к /blog, даже если исходный запрос был страницей в пределах /blog. Если пользователь успешно проходит аутентификацию, он отправляется обратно на страницу входа, как будто ничего не произошло (без сообщений об ошибках и т. Д.).

Я бы предположил, что второе правило mod_rewrite, указанное выше, исправит проблему, но, похоже, это не так.

Я надеюсь, что я все подробно объяснил, пожалуйста, дайте мне знать, если я смогу предоставить дополнительную информацию, которую я, возможно, забыл. Спасибо!

Ответы [ 2 ]

2 голосов
/ 10 октября 2009

вы пробовали проверить параметры WordPress в базе данных WP. Есть два варианта, которые вы должны убедиться, что они верны. siteurl и home . оба должны быть http://yoursite.com/blog

0 голосов
/ 14 октября 2009

Каков корневой каталог вашего документа? Создайте app / webroot / корневой каталог вашего документа , и вам не понадобятся никакие дополнительные правила перезаписи, поскольку стандартные правила перезаписи CakePHP уже имеют правила для существующих файлов и каталогов:

Таким образом, ваш /app/webroot/index.php будет вашей точкой входа в приложение с адресом ... /,

и app / webroot / blog / будут точкой входа WordPress с адресом ... / blog /

Для этой конфигурации достаточно правил переписывания по умолчанию:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d # this will go to your blog dir, if it exists
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] # this is CakePHP app
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...