Zmieni się to domain.comna 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.comna 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 onczy offtak %{HTTPS}sjest albo onsczy offsw przypadku dopasowany). Część zastępująca następnie łączy części informacyjne w pełny adres URL.onssRewriteRule
RewriteEngine Onjako 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, .uka twoja domena something.co.)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
To przekierowuje example.comdo www.example.comwykluczania 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]