Как исправить обратную ссылку htaccess RewriteRule на RewriteCond? Исправление для CPANEL AutoSSL Let's Encrypt - PullRequest
0 голосов
/ 10 мая 2018

CPANEL с AutoSSL (Let Encrypt) добавляет автоматический RewriteCond в htaccess из-за .well известной папки и постоянно обновляет файл htaccess каждые X минут, поэтому вы не можете удалить «хорошо известные» строки. Но при таком подходе они прерывают обратную ссылку RewriteRule на RewriteCond.

# www to non-www generic
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Приведенный выше пример не работает как видимый, поскольку% 1 ссылается на последний RewriteCond, а не на первый, где мы фильтруем хост с помощью регулярного выражения.

1 Ответ

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

Некоторые исправления для общего www с не-www, используя переменные

# www to non-www (fixed to work with CPANEL - AutoSSL)
SetEnvIf Host "^www\.(.*)$" my_domain=$1
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ https://%{ENV:my_domain}/$1 [R=301,L]

Чтобы обойти эту проблему, используйте переменную, это не красиво, но работает!

...