У меня есть следующее в файле хоста apache для перенаправления с www на не-www версию сайта:
RewriteEngine on
RewriteCond %{SERVER_NAME} =domain.com [OR]
RewriteCond %{SERVER_NAME} =www.domain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
Я также хочу перенаправить любого, кто идет по этому URL:
www.domain.com/page/amp => domain.com/page/
Проблема в том, что, если я добавлю следующее правило в мой .htaccess, это приведет к дополнительному перенаправлению:
RewriteCond %{REQUEST_URI} (.+)/amp(.*)$ [NC]
RewriteRule ^ %1/ [R=301,L]
В результате, когда кто-то переходит на www.domain.com/page/amp
, он делает два перенаправления:
Первый: www.domain.com/page/amp
=> 301 до => domain.com/page/amp
Второй: domain.com/page/amp
=> 301 до => domain.com/page
Как изменитьправила в файле vhosts для минимизации этого дополнительного перенаправления?
Пример URL того, что в идеале должно происходить:
www.domain.com => domain.com
www.domain.com/page => domain.com/page
www.domain.com/page/amp => domain.com/page
Последний из приведенных выше - это то, для чего я хочу минимизировать перенаправление.
Обновление:
Вот оба vhosts (для портов 80 и 443):
<VirtualHost *:80>
DocumentRoot /var/www/html
RewriteEngine on
RewriteCond %{SERVER_NAME} =domain.com [OR]
RewriteCond %{SERVER_NAME} =www.domain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/html
ServerName domain.com
Include /etc/letsencrypt/options-ssl-apache.conf
ServerAlias www.domain.com
SSLCertificateFile /etc/letsencrypt/live/domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem
</VirtualHost>