Zmieni się to domain.com
na www.domain.com
:
# Force the "www."
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
Jak zamienić część „domain”, aby działała w dowolnej domenie?
Zmieni się to domain.com
na www.domain.com
:
# Force the "www."
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
Jak zamienić część „domain”, aby działała w dowolnej domenie?
Odpowiedzi:
Użyłbym tej reguły:
RewriteEngine On
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Pierwszy warunek sprawdza, czy wartość Host nie jest pusta (w przypadku HTTP / 1.0); druga sprawdza, czy wartość Host nie zaczyna się od www.
; sprawdza trzecie HTTPS ( %{HTTPS}
jest albo on
czy off
tak %{HTTPS}s
jest albo ons
czy offs
w przypadku dopasowany). Część zastępująca następnie łączy części informacyjne w pełny adres URL.ons
s
RewriteRule
RewriteEngine On
jako pierwszy wiersz, aby go uzupełnić, ponieważ może to doprowadzić do błędu serwera 500, jeśli zostanie skopiowany i wklejony tak, jak jest.
To zrobi to:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Jeśli chcesz przekierować wszystkie żądania niezwiązane z www do Twojej witryny do wersji www, wszystko, co musisz zrobić, to dodać następujący kod do pliku .htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
To nie zadziała w przypadku subdomen.
domena.com zostanie poprawnie przekierowana do www.domena.com
ale
images.domain.com zostanie przekierowany na www.images.domain.com
Zamiast sprawdzać, czy subdomena to „nie www”, sprawdź, czy są tam dwie kropki:
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ HTTP%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\.(.*)\. [NC]
(Ściśle mówiąc, twoja TLD jest nadal, .uk
a twoja domena something.co
.)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
To przekierowuje example.com
do www.example.com
wykluczania subdomen.
To starsze pytanie i można to zrobić na wiele różnych sposobów. Najbardziej kompletną odpowiedź, IMHO, można znaleźć tutaj: https://gist.github.com/vielhuber/f2c6bdd1ed9024023fe4 . (Wklejanie i formatowanie kodu tutaj nie zadziałało)
działało to na mnie jak magia
RewriteCond% {HTTP_HOST} ^ sitename.com [NC] RewriteRule ^ (. *) $ Https://www.sitename.com/ $ 1 [L, R = 301, NC]
RewriteCond %{HTTP_HOST} ^yourdomain.com [NC]