Skocz do zawartości

Problem z przekierowaniem "bez www" na "www" w .htaccess


Pr0miL

Rekomendowane odpowiedzi

Witam ponownie,

mam bardzo poważny problem z przekierowaniami... powoli dostaję wylewu, pół nocy nad tym siedziałem i dalej próbuję to ogarnąć, jednak bez skutku...

Problem polega na tym, że po dodaniu kodu do .htaccess (chciałbym, wymusić przedrostek www w adresie strony...):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domena.com(.*) [NC]
RewriteRule ^(.*)$ http://www.domena.com/$1 [R=301,L]

Strona nie działa w żadnej przeglądarce - w firefox widnieje komunikat: Nieprawidłowe przekierowanie

Po usunięciu reguły strona działa, jednakże bez przedrostka www w adresie (http://domena.com)

1. Nadmieniam, iż z pliku .htaccess usunąłem wszystkie inne reguły - problem powoduje kod który zamieściłem...

2. Aby wykluczyć problem w zakresie pluginów - usunąłem wszystkie dla testu, jednakże błąd nadal występuje

3. Na tym samym serwerze mam jeszcze 2 strony z identyczną regułą i tam wszystko działa jak należy

4. W starej wersji strony na tej samej domenie reguła działa

5. Po implementacji nowej wersji strony na wordpressie reguła powoduje błąd

Proszę o pilną pomoc bo już z nerwów nie wytrzymuje, zapłacę jeśli trzeba...

Odnośnik do komentarza

Dołącz do nas za darmo i naucz się zarabiać!

  • Dostęp do darmowych poradników pokazujących krok po kroku jak zarabiać w Internecie
  • Sposoby zarabiania niepublikowane nigdzie indziej
  • Aktywna społeczność, która pomoże Ci rozwiązać problemy i doradzi
  • Profesjonalne treści na temat SEO, social media, afiliacji, kryptowalut i wiele więcej!

 

 

Stworzyłem nowy temat gdyż nie pasował do starego wątku ;)

Ktoś z tym samym problemem będzie miał już rozwiązanie.

@wojnar, stawiałbym szybciej na złe reguły, które się gryzą niż kod motywu.

@Pr0miL, do swojej reguły nie dodałeś 'www' w RewriteCond, a wydaje mi się że powinno być

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domena.com(.*) [NC]
RewriteRule ^(.*)$ http://www.domena.com/$1 [R=301,L]

Jeżeli nie zadziała to spróbuj tego

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.domena.com [NC]
RewriteRule ^(.*)$ http://www.domena.com%{REQUEST_URI} [R=301,L]

Ewentualnie taki zapis, który powinien działać dosłownie dla każdej domeny ;)

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

Pozdrawiam

  • Super 1
Odnośnik do komentarza

@Harry wypróbowałem wszystkie 3 możliwości i błąd cały czas jak na złość się wyświetla ;(

@wojnar 

Spróbowałem również rozwiązania, które Tobie pomogło:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP_HOST} ^www.mojastrona.pl$ [NC]
RewriteRule ^(.*)$ http://mojastrona.pl/$1 [R=301,L]
</IfModule>

Powyższy kod działa (strona się wyświetla), jednakże brak przedrostka www, 

po modyfikacji kodu:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP_HOST} ^mojastrona.pl$ [NC]
RewriteRule ^(.*)$ http://www.mojastrona.pl/$1 [R=301,L]
</IfModule>

Problem nadal występuje ;(

Nie wiem co mam robić... Może w bazie danych jakieś błędy...?

Edytowane przez Pr0miL
Odnośnik do komentarza

Aktualizacja:

Postanowiłem postawić na serwerze wersję strony fazy początkowej produkcji...

Po dodaniu kodu w .htaccess odpowiedzialnego za wymuszenie przedrostka www problem cały czas wraca :(

Wygląda na to , że problem istnieje od dawna, a dopiero teraz go odkryłem...

W firefox: nieprawidłowe przekierowanie

Chrome:  Strona www.domena.com spowodowała zbyt wiele przekierowań.

Zacznę szukać chyba problemu w bazie danych...

Odnośnik do komentarza
17 minut temu, rafax napisał:

Problem w Wordpressie? Jeśli tak, to może usuń cache po zmianie.

Przy tego typu zmianach zawsze usuwam wszystkie dane z przeglądarki... Tak wordpress...

Na pewno powodem nie są pluginy, theme na 99% też nie, ponieważ zrobiłem go praktycznie od podstaw i inny serwis oparty na tym theme działa bez zarzutów...

Chyba tylko baza danych została... może plugin duplicator coś namieszał... często dla wygody go stosuję, żeby ręcznie się nie bawić...

Odnośnik do komentarza

Czy twój hosting w ogóle obsługuje mod_rewrite? Jeśli nie wiesz to skontaktuj się z administracją. Jeśli obsługuje, a problem jest tylko i wyłącznie na tej jednej domenie pozostaje skontaktowanie się z administracją hostingu.

Odnośnik do komentarza
6 godzin temu, Pr0miL napisał:

Problem polega na tym, że po dodaniu kodu do .htaccess (chciałbym, wymusić przedrostek www w adresie strony...):


RewriteEngine On
RewriteCond %{HTTP_HOST} ^domena.com(.*) [NC]
RewriteRule ^(.*)$ http://www.domena.com/$1 [R=301,L]

Spróbuj dać takie coś:

RewriteEngine On
RewriteBase /
 
RewriteCond %{HTTP_HOST} ^domena.com$
RewriteRule ^(.*) http://www.domena.com/$1 [QSA,L,R=301] 

Jeszcze sprawdzę u siebie bo miałem podobną sytuację

Ewentualnie spróbuj dopisać do tej swojej regułki wiersz

RewriteBase /

Edytowane przez nwds12
Odnośnik do komentarza
2 godziny temu, Harry napisał:

Czy twój hosting w ogóle obsługuje mod_rewrite? Jeśli nie wiesz to skontaktuj się z administracją. Jeśli obsługuje, a problem jest tylko i wyłącznie na tej jednej domenie pozostaje skontaktowanie się z administracją hostingu.

Obsługuje, ponieważ na starej wersji strony (html/css/js/php) działa przekierowanie... Domena jest taka sama jak wcześniej, zmieniłem jedynie stronę (silnik wordpress)... Jeszcze przed chwilą testowałem na starej wersji przekierowanie takim kodem:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domena.com$ [NC]
RewriteRule ^(.*)$ http://www.domena.com/$1 [R=301,L]

I działa wszystko...

Żeby wykluczyć ewentualne błędy na mojej stronie zainstalowałem świeżą wersję wordpressa pod domeną i dodałem standardowy theme - dostępny w panelu po instalacji... Przekierowanie również nie działa, więc na szczęście to nie moja strona (ulga)...

Teraz pytanie czy to może mieć związek z hostingiem...? Nadmieniam, że na starej wersji strony wszystko działa - przed chwilą sprawdzałem, a na wordpressie wyrzuca błędy...

Edytowane przez Pr0miL
Odnośnik do komentarza
37 minut temu, Moriarty napisał:

Masz chmody na htaccess?  Gdzie masz hosta?

Masz na myśli gdzie mam hosting...? -> webd

chmod -> htaccess - 644 (na stronie internetowej bez systemu cms, wszystko działa bez problemowo, a na wordpressie wywala błędy)

Napisałem do obsługi hostingu (opisałem problem), jednakże nie śpieszą się z odpowiedzią :/

Odnośnik do komentarza

Pytanie tylko czemu chcesz wymusić przedrostek ;) Nie ma to najmniejszego wpływu na SEO, takie jest nawet oficjalne stanowisko Google :)

Wysłane z mojego Sony Xperia Z5 Premium za pomocą Tapatalk.

Chcesz zacząć zarabiać w Internecie, ale nie wiesz jak? Szukasz inspiracji i nowych metod? Sprawdź:
>>> 13 sposobów jak zarabiać przez internet! - Zarabianie w Internecie <<<

Odnośnik do komentarza

Problem rozwiązany... Powodem była pętla przekierowań. Mianowicie w Cpanelu dla domeny było ustawione przekierowanie z przedrostkiem www, a w PA Wordpressa bez www - tworzyła się tzw pętla przekierowań...

Potrzebuje ostatniej wskazówki w zakresie przekierowań - teraz potrzebuję w obrębie tej samej domeny przekierować starą podstronę http://www.domena.com/kontakt.html na nową http://www.domena.com/kontakt

Próbuję takim kodem:

RewriteRule ^kontakt.html(.*)$ /kontakt [R=301, L]

Widnieje błąd 500

Aktualizacja:

Poradziłem sobie: :D


RewriteEngine On
RewriteBase /
 
RewriteRule ^kontakt.html$ http://www.domena.com/kontakt/ [R=301,L]
Edytowane przez Pr0miL
Odnośnik do komentarza
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Ta strona korzysta z ciasteczek aby świadczyć usługi na najwyższym poziomie. Dalsze korzystanie z witryny oznacza zgodę na ich wykorzystanie. Polityka prywatności .