Конфликт .htaccess в каталоге Wordpress - PullRequest
0 голосов
/ 17 июня 2020

У меня есть файл htaccess в root моих файлах publi c на моем веб-сервере:

Header set Content-Security-Policy: upgrade-insecure-requests

DirectoryIndex index.html index.php parking-page.html

RewriteEngine on
# Force www
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# Force SSL
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]

Options -Indexes

ErrorDocument 404 https://%{HTTP_HOST}/index.php

# for JWT auth
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
# end for JWT auth

Я установил блог Wordpress в / blog, и Wordpress создает файл .htaccess в этой папке:

# BEGIN WordPress
# The directives (lines) between `BEGIN WordPress` and `END WordPress` are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

# END WordPress

Я замечаю, что когда я посещаю http://example.com/blog, он перенаправляет меня на https://www.example.com/index.php, тогда как он должен go на https://www.example.com/blog. Другие страницы, например http://example.com/contact-us, успешно перенаправляются на https://www.example.com/contact-us

Обновление:

1 Ответ

0 голосов
/ 17 июня 2020

У вас может быть ошибка в вашем правиле перезаписи для перенаправления с не www to www. Я не знаю, где у вас этот код, но я никогда раньше не видел, чтобы это выполнялось подобным образом. *

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,R=302]

Важно: обратите внимание на использование перенаправления 302 - вы должны использовать только временное перенаправление, пока не убедитесь, что оно работает. Только когда вы знаете, что он работает, вы можете изменить его на 301.

Поскольку вы использовали перенаправление 301 в текущем правиле, оно будет кэшировано, и его очистка может занять некоторое время.

Обратите внимание, что для WP, установленного во вложенной папке, вам необходимо добавить это правило перезаписи в файл .htaccess во вложенной папке.


Обратите внимание, что ваш Правила перезаписи не запускаются ... похоже, что это работает, потому что у вас есть https и www as URL-адрес сайта в ваших настройках WP.

Следовательно, возможно, что причина http://example.com/blog переходит в https://www.example.com/index.php не из-за перезаписи, а из-за того, что срабатывает следующая строка в вашем .htaccess:

ErrorDocument 404 https://%{HTTP_HOST}/index.php

Если внесение вышеуказанных изменений не сработает, вы можете рассмотреть это как возможную причину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...