Przekierowania 301 (stałe) lub 302 (tymczasowe) przydają się przede wszystkim przy pozycjonowaniu strony, aby "pokazać" wyszukiwarce, że tylko jeden zapis adresu strony jest poprawny. Wybór tego czy adres domeny będzie poprzedzony "www" czy też nie zależy tylko od użytkownika i nie ma wpływu na pozycje domeny w wyszukiwarce. Zatem w zależności od wybranego rozwiązania i preferencji można wykonać przekierowanie:

1. "Z www" na "bez www":

a) przez plik .htaccess (powinien znajdować się w folderze public_html - jeśli go nie ma, należy utworzyć):

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
 
lub z dodatkowym przekierowaniem na SSL:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]

b) przez skrypt PHP (kod powinien być dodany na początku pliku np. index.php zaraz za znacznikiem "<?php"):

if (substr($_SERVER['HTTP_HOST'], 0, 4) == 'www.')
{
        header('HTTP/1.1 301 Moved Permanently');
        header('Location: http://.' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
        exit();
}

Jeśli przekierowanie dotyczyć ma adresów z szyfrowaniem SSL, należy zamienić "http" na "https".

2. Z "bez www" na "z www".
 
a) przez plik .htaccess:

RewriteCond %{HTTP_HOST} ^(?!www\.)(.+) [NC]
RewriteRule ^(.*) http://www.%1/$1 [R=301,NE,L]

lub z dodatkowym przekierowaniem na SSL:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

b) przez skrypt PHP:

if (substr($_SERVER['HTTP_HOST'], 0, 4) != 'www.') {
        header('HTTP/1.1 301 Moved Permanently');
        header('Location: http://www.' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
        exit();
}

Jeśli przekierowanie dotyczyć ma adresów z szyfrowaniem SSL, należy zamienić "http" na "https".

Przeczytaj również
Dopuszczalne zmiany w konfiguracji PHP (php.ini) (Zobacz: 6081)
Jak zmienić nazwę e-maila widocznego przy użyciu funjcji mail() w PHP (Zobacz: 1382)
Zmiana wersji PHP (Zobacz: 7723)
Warning: call_user_func() expects parameter 1 to be a valid callback, first array member is not a valid class name or object (Zobacz: 938)

Powered by WHMCompleteSolution