Принудительный SSL на htaccess для перенаправлений даты WordPress - PullRequest
0 голосов
/ 30 мая 2018

У меня есть давний блог, который использовал формат дня и имени:

https://www.example.com/2018/05/30/sample-post/

После первого года я решил, что мне будет лучше без даты в URL.Я изменил свои постоянные ссылки в WordPress, а затем добавил в файл htaccess следующее, чтобы перенаправить старые сообщения:

RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(?!page/)(.+)$ http://www.fakedomain.com/$4

Это работало хорошо, пока через пару лет я не перешел на SSL,Затем я просто изменил приведенное выше правило так:

RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(?!page/)(.+)$ https://www.fakedomain.com/$4

Все работает просто отлично.Тем не менее, "Почему нет замка?"помечает его как:

Ваш веб-сервер не форсирует использование SSL. Возможно, вы захотите добавить перенаправление, чтобы убедиться, что используется безопасное соединение.

Затем он рекомендуетчто я добавляю это в htaccess:

RewriteCond %{HTTP_HOST} fakedomain\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.fakedomain.com/$1 [R,L]

Однако, если я добавлю это, сайт сломается. Я недостаточно понимаю правила, каков наилучший способ использовать перенаправление SSL в сочетании со старымredirect?

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

RewriteCond %{HTTP_HOST} ^anotherdomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.anotherdomain\.com$
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^/?$ "http\:\/\/www\.andanotherdomain\.com" [R=301,L]

1 Ответ

0 голосов
/ 30 мая 2018

Попробуйте использовать перенаправление HTTP на HTTPS следующим образом, затем свое правило перенаправления и, наконец, стандартную конфигурацию WordPress htaccess.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# HTTP to HTTPS redirect
RewriteCond %{ENV:HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

# Your redirect rule
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(?!page/)(.+)$ http://www.fakedomain.com/$4

# Standard WordPress config
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...