Skocz do zawartości

przekierowanie index.php na /


Rekomendowane odpowiedzi

Witam serdecznie.

Od kilku lat przeglądam te forum, korzystając z dobrodziejstwa zawartych tu informacji, a teraz przyszedł czas na mój pierwszy post. Jako, że szukając informacji trafiłem na ten dział, postanowiłem zapytać o radę.

Mam problem z poprawnością przekierowania:

RewriteCond %{REQUEST_URI} /index.php
RewriteRule ^(.*)$ https://stronka.pl/ [R=301,L]

Kiedy przejdę do linka: https://stronka.pl/index.php przekierowuje mnie na stronę https://stronka.pl/ , ale kiedy wejdę w jakiś inny przekierowanie się zapętla. Może mi ktoś pomóc? Gdzie mam błąd?

Oto cały plik .htaccess:

SetEnv APPLICATION_ENV development
SetEnv PHP_VER 5_TEST

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.stronka.pl(.*) [NC]
RewriteRule ^(.*)$ https://stronka.pl/$1 [R=301,L]

RewriteCond %{REQUEST_URI} /index.php
RewriteRule ^(.*)$ https://stronka.pl/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]


#php_value magic_quotes 0
#php_flag magic_quotes off
#php_value magic_quotes_gpc 0
#php_flag magic_quotes_gpc off
SetEnv MAGIC_QUOTES 0

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...

Wracam do tematu bo po wyczyszczeniu pamięci przeglądarki okazało się że wcale nie działa.

Wrzucam jeszcze raz moj ały plik .htaccess tym razem z komentarzami, w których zawarłem o co mi chodzi:

SetEnv APPLICATION_ENV development
SetEnv PHP_VER 5_TEST

RewriteEngine On
######################### jesli nazwa hosta zacznie sie od www przekieruj na adres bez www
RewriteCond %{HTTP_HOST} ^www.domena.pl(.*) [NC]
RewriteRule ^(.*)$ https://domena.pl/$1 [R=301,L]
######################### jesli wystepuje w linku index.php przekieruj na /
RewriteCond %{REQUEST_URI} ^\/index.php$
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ https://www.domena.pl/ [L,R=301]

######################### jezeli adres jes plikiem aliasem badz katalogiem to zakoncz
######################### przetwarzanie [L ignorujac wielkosc znakow [NC] i go podaj
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
######################### kieruj wszystko do index.php o ile powyzsze sie nie sprawdzi
RewriteRule ^.*$ index.php [NC,L]


#php_value magic_quotes 0
#php_flag magic_quotes off
#php_value magic_quotes_gpc 0
#php_flag magic_quotes_gpc off
SetEnv MAGIC_QUOTES 0

Proszę aby ktoś mądry to przeanalizował, bo przejrzałem już sporo stron i sporo czasu kombinowałem bez zadawalającego rezultatu. Nie działa ten fragment: RewriteRule ^(.*)$ https://www.domena.pl/ [L,R=301] albo się zapętla w zależności czy strona to domena.pl/index.php czy domena.pl/

Odnośnik do komentarza
Udostępnij na innych stronach

Po kolejnych testach i lekturze przyklejonego wątku o htaccessie nadal nie potrafię zrozumieć dlaczego właśnie te fragmenty kodu się ze sobą gryzą:

RewriteCond %{REQUEST_URI} ^\/index.php$ [NC]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ https://domena.pl/ [L,R=301]

RewriteRule ^.*$ index.php [NC,L]

Może ktoś ma jakieś pomysły?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...
RewriteRule ^.*$ index.php [NC,L]

zmień na

RewriteRule ^.*$ https://domena.pl/ [NC,L]

To powinno załatwić sprawę.

... nadal nie potrafię zrozumieć dlaczego właśnie te fragmenty kodu się ze sobą gryzą:

Najpierw kierujesz z index.php na / a później z / na index.php - dlatego.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...
Najpierw kierujesz z index.php na / a później z / na index.php - dlatego.

Ale czy [L] nie powinno załatwić sprawy?

Po zmianach wedle wskazówek z ciągle zahaszowanymi linijkami, które sprawiaja problem:

#RewriteCond %{REQUEST_URI} ^\/index.php$ [NC]
#RewriteCond %{QUERY_STRING} ^$
#RewriteRule ^(.*)$ https://domena.pl/ [L,R=301]

taki efekt:

Firefox wykrył, że serwer przekierowuje żądanie tego zasobu w sposób uniemożliwiający jego ukończenie.

Może czegoś nie rozumiem. Wedle teorii htaccess służy do pokazywania innego adresu url niż może to wynikać ze struktury katalogów na serwerze. Zatem RewriteRule nie kieruje na konkretne pliki na serwerze a jedynie na adres. Mylę się?

Jaka jest różnica między:

RewriteRule ^.*$ index.php [NC,L]

a

RewriteRule ^.*$ https://domena.pl/index.php [NC,L]

Pytam ponieważ pierwsze tworzy mi url: https://domena.pl/ a drugie: https://domena.pl/index.php

Ktoś pojmuje?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...
Po zmianach wedle wskazówek z ciągle zahaszowanymi linijkami, które sprawiaja problem:

#RewriteCond %{REQUEST_URI} ^\/index.php$ [NC]
#RewriteCond %{QUERY_STRING} ^$
#RewriteRule ^(.*)$ https://domena.pl/ [L,R=301]

zamien moze na

#RewriteCond %{REQUEST_URI} ^\/index.php$ [NC]
#RewriteCond %{QUERY_STRING} ^$
#RewriteRule (.*)$ https://domena.pl/ [L,R=301]

albo sprobuj tak:

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

nie wiem czy zadziala czy nie - ale u mnie z powodzeniem chodzi.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...
  • 1 miesiąc temu...

Mam mały problem z którym nie mogę sobie poradzić. Wykorzystywałem wiele reguł ale nic nie działa - liczę że ktoś pomoże :D Opisuję o co chodzi:

Strona jest na Quick.CMS www.moja-domena.pl

Jedna z podstron jest ustawiona jako strona startowa, zatem ta podstrona zawiera taką samą treść jak strona główna. Adres tej podstrony jest następujący https://www.moja-domena.pl/?strona-startowa,1

Występuję zatem duplicate content, ponadto na każdej z podstron serwisu jest link prowadzący do https://www.moja-domena.pl/?strona-startowa,1 z anchorem Strona startowa. A chciałbym aby te linki z anchorem Strona Startowa na każdej podstronie prowadziły bezpośrednio do adresu głównego www.moja-domena.pl (głownie też ze względu na pozycjonowanie, bo przykładowo chciałbym pozycjonować główny adres na frazę "Strona startowa" i linkowanie z każdej podstrony z tym anchorem bardzo by pomogło)

Jaka powinna być prawidłowa reguła w .htaccess? Czy ma znaczenie w którym miejscu w .htaccess będzie ona umieszczona? A może na quick.cms można sobie jeszcze jakoś inaczej z tym poradzić?

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności