Я использую систему единого входа Google Apps для аутентификации пользователей на всех моих сайтах WordPress. В процессе аутентификации Google возвращает несколько параметров для данного URL-адреса, и один из параметров - объем который состоит из https://www.googleapis.com/auth/userinfo.profile объем.
По умолчанию wordpress полагается на apache для SEO-дружественных URL / постоянных ссылок. Теперь, когда Google перенаправляет меня на https://example.com/wp-login.php?state=###&code=###&scope=https://www.googleapis.com/auth/userinfo.profile+https://www.googleapis.com/auth/plus.me+https://www.googleapis.com/auth/userinfo.email сервер (apache) дает мне Ошибка 404. После некоторых проб и ошибок я узнал, удаляю ли я .профиль с URL-адреса или просто удалите . (точка) перенаправление / поведение происходит, как ожидалось.
Я не эксперт по Apache, поэтому я хочу понять это поведение и как я могу решить эту проблему в глобальном масштабе.
--- Редактировать ---
.htaccess
файл в локальной области
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Насколько я понимаю, если файл / каталог, указанный в URL-адресе, не существует, запрос передается в WordPress. index.php
для обработки.
@MrWhite: Чтобы ответить на ваш вопрос, из URL-адреса, который я упомянул выше wp-login.php
файл существует, но apache все еще передает запрос в index.php
WordPress, возвращающий ошибку 404.
Использование фильтров, если я изменил URL-адрес с example.com/wp-login.php
к example.com/login
Я получаю ошибку 403.
Но если я удалю . (точка) в URL-адресе перед ключевым словом профиля все работает, как ожидалось.
- редактировать 2 -
Я узнал, что это происходит из-за правила mod_security для ограничения доступа к файлам ОС. https://github.com/SpiderLabs/owasp-modsecurity-crs/blob/c06e2f5f7efa1c24f18ddf9a3298e3db4cdfeaac/rules/restricted-files.data#L34 Я понимаю, что это необходимое правило, но как разрешить mod_security https://www.googleapis.com/auth/userinfo.profile в аргументах URL (только этот URL)?