Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przepisywanie adresu htaccess
Forum PHP.pl > Forum > Serwery WWW > Apache
timmy
Może ktoś to na szybko potrafi ogarnąć
chodzi mnie o zmianę wyświetlanego adresu z:

domena.pl/index.php?id=kontakt
na
domena.pl/kontakt

czyli tak, żeby adres łamał się przez zmienną id a nie wypisywał zmiennych w adresie

StrefaPi
to powinno być coś w tym stylu

Kod
RewriteEngine On
RewriteRule ^(.+)$ index.php?id=$1 [L]
timmy
Niestety nie tak.

Poza tym, że teraz nie uwzględnia mi arkusza css nic to nei zmienło w adresie
StrefaPi
Kod
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+)$ index.php?id=$1 [L]


a linki na stronie zmieniłeś, sam rewrite nie rozwiązuje problemu adresów... wszystkie adresy generowane w kodzie powinny też być poprawione ;)
timmy
Jeszcze nie zmieniłem, cenna uwaga, muszę pozmieniać snitch.gif

Ale nadal nie działa nawet wpisaniu adresu z palca
wyrzuca:
Internal Server Error


w tym momencie moj htaccess wyglada tak:
Kod
RewriteEngine On
Options FollowSymLinks
RewriteCond %{HTTP_HOST} ^www.domena.pl(.*) [NC]
RewriteRule ^(.*)$ [url="http://domena.pl/$1"]http://domena.pl/$1[/url] [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+)$ index.php?id=$1 [L]
StrefaPi
spróbuj tak (4 linia kodu, dodałem "L"),

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+)$ index.php?id=$1 [L]


u mnie nie ogólnie nie ma problemu... serwer nie zgłasza nic wykonuje - testowałem.
timmy
Nadal nie chodzi

a po zmianie .pl na .tld w domenie nie działało mnie przekierowanie z www na bez www

W logach serwera:
Kod
[error] [client **.***.29.79] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
StrefaPi
nie masz zapętlenia w przekierowaniu domeny z i bez www?
czy serwer nie zgłąsza błędu np. bez ostatnich trzech linii?

domena.tld - to przykład; tld = top-level domain ;)
timmy
Wyrzuciłem to przekierowanie z www na bez niego, zostawiłem tylko to skracanie adresu
Kod
RewriteEngine On
Options FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+)$ index.php?id=$1 [L]


i dalej nic sciana.gif
StrefaPi
a teraz jakiś błąd jest? masz cms? w index.php nie masz przekierowania? jak wywołujesz strony?
timmy
Nie to zwykła stronka z kilkoma includami wyswietlanami z $_GET['id']
żadnych innych przekierowań, serwer w nazwa.pl
StrefaPi
na nazwa.pl może dodaj
Kod
RewriteBase /


a sama reguła
Kod
RewriteRule ^(.+)$ /index.php?id=$1 [L]
timmy
Pomogło WIELKIE DZIĘKI

prawidłowo działający pełny kod dla potomnych:
Kod
RewriteBase /
RewriteEngine On
Options FollowSymLinks
RewriteCond %{HTTP_HOST} ^www.domena.pl(.*) [NC]
RewriteRule ^(.*)$ http://domena.pl/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+)$ index.php?id=$1 [L]


offtopic.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.