Skocz do zawartości

mod_rewrite i htaccess


JJack

Rekomendowane odpowiedzi

Witam kolegów i koleżanki serdecznie :P

To mój pierwszy post i od razu prośba o pomoc :)

Mam takie coś :

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{HTTP_HOST} !^www. [NC]

RewriteRule ^(.*)$ https://www.nazwadomeny.pl/ [L,R=301]

RewriteRule ^(([a-zA-Z0-9_]+))/?$ index.php?id=$1 [NC]

RewriteRule ^(([a-zA-Z0-9_]+))/(([a-zA-Z0-9_]+))/?$ index.php?id=$1&type=$2 [NC]

RewriteRule ^(([a-zA-Z0-9_]+))/(([a-zA-Z0-9_]+))/(([a-zA-Z0-9_]+))/?$ index.php?id=$1&type=$2&line=$3 [L]

A chcę osiągnąć nic innego jak :

1. Dostępność katalogów które istnieją :

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

2. Przepisanie https://nazwadomeny.pl na https://www.nazwadomeny.pl

RewriteCond %{HTTP_HOST} !^www. [NC]

RewriteRule ^(.*)$ https://www.nazwadomeny.pl/ [L,R=301]

3. Najważniejsze, zmianę struktury adresu dla linków z 3 zmiennymi, z dwoma i z jedną zmienną.

RewriteRule ^(([a-zA-Z0-9_]+))/?$ index.php?id=$1 [NC]

RewriteRule ^(([a-zA-Z0-9_]+))/(([a-zA-Z0-9_]+))/?$ index.php?id=$1&type=$2 [NC]

RewriteRule ^(([a-zA-Z0-9_]+))/(([a-zA-Z0-9_]+))/(([a-zA-Z0-9_]+))/?$ index.php?id=$1&type=$2&line=$3 [L]

Czyli linki typu :

- www.nazwadomeny.pl/index.php?id=parametr przepisuje na www.nazwadomeny.pl/parametr/ lub www.nazwadomeny.pl/parametr (bez slasha)

- www.nazwadomeny.pl/index.php?id=parametr&type=parametr_type przepisuje na www.nazwadomeny.pl/parametr/parametr_type/ lub www.nazwadomeny.pl/parametr/parametr_type (bez slasha)

- www.nazwadomeny.pl/index.php?id=parametr&type=parametr_type&line=parametr_line przepisuje na www.nazwadomeny.pl/parametr/parametr_type/parametr_line/ lub www.nazwadomeny.pl/parametr/parametr_type/parametr_line (bez slasha)

No i dzieje się tak że pierwszy przypadek przepisania z jedną zmienną (id) działa :cray:

jednak jak są jeszcze dwie inne zmienne to nie działa

Nie działa mi też 301 przekierowanie, po wpisaniu https://nazwadomeny.pl nie przechodzi na www.nazwadomeny.pl

Przejrzałem masę dokumentacji i mam wrażenie że coś z flagami przekombinowałem :cray:

Pomoże ktoś ?

Pozdrawiam

Jacek

Tworzenie profesjonalnych stron internetowych - www.jackvision.pl

Odnośnik do komentarza
Udostępnij na innych stronach

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

i na początku ht.

RewriteRule ^([a-zA-Z0-9_]+)/?$ index.php?id=$1 [NC,L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/?$ index.php?id=$1&type=$2 [NC,L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/?$ index.php?id=$1&type=$2&line=$3 [NC,L]

nie sprawdzałem dokładnie ale coś za dużo tych nawiasów :D

E: no dobra poprawiłem powinno działać :)

nihil fit sine causa

Odnośnik do komentarza
Udostępnij na innych stronach

oo dzięki wielkie, sprawdzę wieczorem czy to działa :)

Miałeś na myśli te nawiasy : (([a-zA-Z0-9_]+)) ?

zamienić je na ([a-zA-Z0-9_]+) pojedyncze ?

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

i na początku ht.

RewriteRule ^(([a-zA-Z0-9_]+))/?$ index.php?id=$1 [NC,L]
RewriteRule ^(([a-zA-Z0-9_]+))/(([a-zA-Z0-9_]+))/?$ index.php?id=$1&type=$2 [NC,L]
RewriteRule ^(([a-zA-Z0-9_]+))/(([a-zA-Z0-9_]+))/(([a-zA-Z0-9_]+))/?$ index.php?id=$1&type=$2&line=$3 [NC,L]

nie sprawdzałem dokładnie ale coś za dużo tych nawiasów :D

Tworzenie profesjonalnych stron internetowych - www.jackvision.pl

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