Skocz do zawartości

mod_rewrite - 301, przepisywanie itd


ekke

Rekomendowane odpowiedzi

witam serdecznie!

mam problem, otóż próbuję napisać tak regułki rewrite'a, aby spełniały następujące wymagania:

1. jesli strona wywołana jest z www, robimy redirect 301 na 'bez www'

2. wszystkie (.*).php przepisujemy na index.php?i=$1 (np. strona.pl/plik.php na strona.pl/index.php?i=plik)

3. powyższa regułka ma działać zarówno przy adresie z www, jak i bez (przy czym z www odrazu przerzuca nas na 'bez www', zachowując oczywiście pozostałą część adresu (301).

sam zrobiłem

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

oraz

RewriteRule ^(.*).php$ /index.php?i=$1

ale nie wiem, jak je połączyć, aby spełniały powyższe wymagania.

nie mam też pewności, czy na pewno są zgodne z całą tą sztuką, optymalne itd.

bardzo byłbym wdzięczny za naprowadzenie na właściwe rozwiązanie.

pozdrawiam ;-)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...
[edytowane-Erbit]

Nie cytuj bez potrzeby

kurde, to też nie działa... znaczy pokazuje $_GET['i'] jako całą nazwę pliku (z rozszerzeniem). a bez RewriteConda i jego reguły działa poprawnie. wygląda to tak, jakby brało $1 z reguły występującej po Cond.

Wiem, że to dziwne, ale szperam cały czas i nie wiem jak to zrobić.

konto na home.pl

będę wdzięczny za jakąkolwiek pomoc

pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

  • 5 miesięcy temu...

Options +FollowSymlinks
RewriteEngine On

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

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*).php$ /index.php?i=$1

powinno zadziałać.

wychodizło zapętlenie, bo index.php tez podlega ponownemu przepisaniu bo jest z końcówka php

dymna.jpg

Przyjaźń psa na całe życie. ZAGINĄŁ DOM

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

pomogło zbawienna okazała się linijka

RewriteCond %{REQUEST_FILENAME} !-f

całość ma poprawiać adres na SEO friendly i z www na początku. No i wygląda tak

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*).html /index.php?dzial=$1

Dzięki za pomoc

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