Nem nekem dolgozik. Mit csinálok rosszul, a rettegett túl sok átirányítási hiba jelentkezik. Minden URL-t megpróbálok a WWW-re és a https-re kényszeríteni, bár megelégednék azzal, hogy mindent csak a https-re tudnék kényszeríteni
RewriteEngine on
RewriteBase /
RewriteCond %{http_host} ^all-service-musical.com [nc]
RewriteRule ^(.*)$ https://www.all-service-musical.com/$1 [r=301,nc]
RewriteCond %{http_host} ^asmusic.org [nc]
RewriteRule ^(.*)$ https://www.all-service-musical.com/$1 [r=301]
RewriteCond %{http_host} ^www.all-service-musical.com [nc]
RewriteRule ^(.*)$ https://www.all-service-musical.com/$1 [r=301,nc]
Az első két szabály jól működik együtt, de a harmadik szabály a www-url-t https-re próbálja módosítani. megszakítja az egészet ... van valami ötlet?
Megpróbáltam eltávolítani az összes fenti kódot, és megpróbáltam végrehajtani a feladat http: https részét a következő használatával:
RewriteEngine On
#RewriteCond %{HTTPS} off
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Túl sok átirányítási hibát kapok akkor is, amikor a fenti megközelítést alkalmazva.
Ezt egyedül is kipróbáltam:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://all-service-musical.com/$1 [R,L]
Ugyanezek az eredmények ... túl sok átirányítási hibával törik meg a webhelyet.
MrWhite ... Köszönjük, hogy időt szánt a válaszra, a kód, amely jelenleg a htaccess fájlban található:
RewriteEngine on
RewriteBase /
RewriteCond %{http_host} ^www.all-service-musical.com [nc]
RewriteRule ^(.*)$ https://all-service-musical.com/$1 [r=301,nc]
RewriteCond %{http_host} ^asmusic.org [nc]
RewriteRule ^(.*)$ https://all-service-musical.com/$1 [r=301]
RewriteCond %{http_host} ^www.asmusic.org [nc]
RewriteRule ^(.*)$ https://all-service-musical.com/$1 [r=301]
Mivel a tanúsítvány az all-service-musical.com webhelyre vonatkozik (kezdek elgondolkodni azon, hogy az ilyen módon történő beállítása rossz tanács volt-e a tárhely társaságától), gondoltam próbáld meg átírni a kódot úgy, hogy a nem WWW verzió legyen a cél, azonban továbbra is ugyanaz a probléma merül fel, amikor az all-service-musical.com webhelyet beírom Az e címsor nem biztonságos, amikor a kódom az eredetileg közzétett WWW verzióval volt, amikor közvetlenül beírtam, akkor nem biztonságos.
Azt kellene gondolnom, hogy ez a kódkód, amelyet megadott:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=302,L]
Ha minden más eltávolításnak bizonyos mértékben önmagában kell működnie, de túl sok átirányítási hibával megtöri a webhelyet, még akkor is, ha ez az egyetlen dolog a htaccess fájlban.
Szeretem és értékelem a használatával kapcsolatos tanácsát. egy 302-es átirányítást, amíg meg nem kapom a megfelelő kódot, amit erre kitaláltam. Minden további tanácsot, melyben a kérdésem leselkedhet, nagyra értékeljük.
Если вы постоянно получаете петли перенаправления при попытке использования всех этих директив, очистите кеш браузера. Все не должны вызывать петли перенаправления. По этой причине рекомендуется протестировать с 302 (временными) перенаправлениями и менять на 301 (постоянное) только тогда, когда вы уверены, что они работают нормально.
RewriteCond% {http_host} ^ all-service-musical.com [nc ] RewriteRule ^ (. *) $ Https: // www.all-service-musical.com/$1 [r = 301, nc] RewriteCond% {http_host} ^ asmusic.org [nc] RewriteRule ^ (. *) $ Https://www.all-service-musical.com/$1 [r = 301] RewriteCond% {http_host} ^ www.all-service-musical.com [nc] RewriteRule ^ (. *) $ Https://www.all-service-musical.com/$1 [r = 301, nc]
Во всех ваших первых трех директивах RewriteRule
отсутствует флаг L
, поэтому обработка будет продолжена для следующего правила и т. Д. Ваше третье правило, которое пытается «изменить URL-адрес www на https. "обязательно вызовет цикл перенаправления, поскольку вы просто перенаправляете его на себя. Чтобы перенаправить с HTTP на HTTPS, вам необходимо сначала проверить HTTP (например, HTTPS
отключен
), как вы это делаете в последующих попытках.
RewriteEngine On #RewriteCond% {HTTPS} выкл. #RewriteRule (. *) Https: //% {HTTP_HOST}% {REQUEST_URI} [R = 301, L]
Ваше 4-е правило перенаправляет на HTTPS на одном и том же хосте - это потенциально хорошая идея, если на всех ваших разных доменах (у вас их всего два?) Установлены сертификаты безопасности.
RewriteCond% {HTTPS} off RewriteRule ^ (. *) $ Https://all-service-musical.com/$1 [R, L]
Это перенаправление на вершину домена, а не на субдомен www (противоположность первым трем правилам). Это может потенциально привести к возникновению цикла перенаправления, если код сайта сам отправит перенаправление на канонический хост.
Допущения:
www.all-service-musical.com
и все другие домены перенаправляют на это. Вместо этого попробуйте следующее в верхней части вашего .htaccess
файл:
RewriteEngine On
# Redirect non-canoncial hostname
RewriteCond %{HTTP_HOST} !^www\.all-service-musical\.com$
RewriteRule (.*) https://www.all-service-musical.com/$1 [R=302,L]
# Redirect to HTTPS
# NB: This only applies if the canonical hostname is requested over HTTP
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=302,L]
Как упоминалось выше, изменяйте 302 на 301 только после того, как убедитесь, что он работает нормально, чтобы избежать проблем с кешем браузера.