Множественные перенаправления с 301 apache с https: / /domain.tld на https: //domain.tld/subdir/

У меня есть текущая настройка с Apache2, позволяет шифрование to move

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 посещение имени домена в поддиректорию, я получил несколько перенаправлений.

https://domain.tld => https://domain.tld/subdir ( Endless redirect to 
https://domain.tld/subdir/subdir/subdir/ and so on )

000-default- le-ssl.conf

<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>

000-default.conf

<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 строки, пожалуйста, помогите мне понять, почему это происходит и каково решение.

Большое спасибо!

0
задан 12 June 2019 в 10:05
1 ответ
<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- path вернет клиенту запрос перенаправления в месте расположения целевого URL. Дополнительная информация о пути помимо совпадающего пути URL будет добавлена ​​ к целевому URL.

При использовании « / » в качестве URL-пути и « / abc » целевой URL / abc также будет сопоставлен и перенаправлен на / abc / abc .

Вы, вероятно, захотите сопоставить только пустой домен и перенаправить его на / abc, верно?

Вместо этого используйте RedirectMatch :

RedirectMatch permanent ^/$ https://domain.tld/abc
1
ответ дан 4 December 2019 в 15:41

Теги

Похожие вопросы