У меня текущая установка с Apache2, позволяет шифровать для перемещения
http://domain.tld => https://domain.tld
http://www.domain.tld => https://www.domain.tld
Он работает идеально,
Теперь я хотел переместить все посещения моего доменного имени в подкаталог
http://domain.tld => https://domain.tld/subdir ( Done! its working )
Но когда я попытался перенаправить посещение https domainName в subdir, я получил несколько перенаправлений.
https://domain.tld => https://domain.tld/subdir ( Endless redirect to
https://domain.tld/subdir/subdir/subdir/ and so on )
<IfModule mod_ssl.c>
<VirtualHost domain.tld:443>
ServerName domain.tld
ServerAlias www.domain.tld
DocumentRoot /var/www/domain.tld/html
Redirect permanent / https://domain.tld/abc
SSLCertificateFile /etc/letsencrypt/live/domain.tld/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.tld/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/domain.tld/chain.pem
</VirtualHost>
</IfModule>
<VirtualHost domain.tld:80>
ServerName domain.tld
ServerAlias www.domain.tld
DocumentRoot /var/www/domain.tld/html
# This works like a charm !( DONE! )
Redirect 301 / https://domain.tld/roll-out/
# RewriteEngine on
# RewriteCond %{SERVER_NAME} =domain.tld [OR]
# RewriteCond %{SERVER_NAME} =www.domain.tld
# RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Я прокомментировал последние 3 строки. Пожалуйста, помогите мне понять, почему это происходит и каково решение.
Большое спасибо!
<VirtualHost example.tld:443>
ServerName example.tld
Redirect permanent / https://example.tld/abc
https://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect :
Тогда любой запрос начало с URL-путем вернет запрос перенаправления клиенту в месте расположения целевого URL. Дополнительные информация о пути за пределами совпадающего URL-пути будет добавлена на целевой URL.
Используя "/
"как URL-путь и"/abc
"целевой URL / abc также будет сопоставлен и будет перенаправлен на /abc/abc
.
Вероятно, вы хотите сопоставить только пустой домен и перенаправить его на / abc, верно?
Использовать RedirectMatch
вместо:
RedirectMatch permanent ^/$ https://domain.tld/abc