Skocz do zawartości

Regułka mod_rewrite nie działa


Rekomendowane odpowiedzi

Witam;

Piszę tutaj gdyż nie chcę śmiecić w innych mniej dopasowanych do mojego tematu posta wątkach.

Problem tyczy się regułek mod_rewrite na serwerze Neteasy.pl.

Przeniosłem się ze stroną na w/w serwer i regułki przepisujący adresy przestały mi działać.

Nawigacja po stronie wygląda następująco:

www.adres.pl/index.php?id=podstrona

za pomocą pliku htaccess staram sie uzyskać takie URL'e:

www.adres.pl/podstrona

----------------------------------------------------------------------

Do tej pory korzystałem z takiej regułki:

RewriteRule ^([a-zA-Z_]+)$ /index.php?id=$1 [L]

na tym serwerze działać ona nie chce.

Jednak jeżeli w pliku .htaccess wpisze regułkę odnoszącą się do konkretnej strony, czyli np:

RewriteRule ^linki /index.php?id=linki [L]

to

URL:

www.adres.pl/linki

działa pięknie.

Dodam, że strona pod adresem:

www.adres.pl/index.php?id=podstrona działa jak należy.

W desperacji próbowałem już różnych kombinacji, niestety żadna z poniższych nie zadziałała:

RewriteRule ^(.*) /index.php?id=$1 [L] lub
RewriteRule ^(.*)$ /index.php?id=$1 [L] lub
RewriteRule ^(.*)/?$ /index.php?id=$1 [L] lub

RewriteRule ^(\w+) /index.php?id=$1 [L] lub
RewriteRule ^(\w+)$ /index.php?id=$1 [L] lub
RewriteRule ^(\w+)/?$ /index.php?id=$1 [L] lub

RewriteRule ^([a-zA-Z_]+)$ index.php?id=$1 [L] lub to
RewriteRule ^([a-zA-Z_]+)$ /index.php?id=$1 [L]

----------------------------------------------------------------------

W innym wątku na forum poradzono mi sposób:

Options FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^([^-]+)$ index.php?id=$1 [L]

Jednak po zastosowaniu tego kodu dostałem na stronie errory:

Warning: include(index.php.php) [function.include]: failed to open stream: No such file or directory in /home/wina/domains/winka.net/public_html/index.php on line 113

Warning: include() [function.include]: Failed opening 'index.php.php' for inclusion (include_path='.:/usr/local/php5/lib/php') in /home/wina/domains/winka.net/public_html/index.php on line 113

To pewnie przez tą jedną regułkę gdyż po jej usunięciu błędy zniknęły - jednak problemu to mojego nie rozwiązało.

----------------------------------------------------------------------

Mój cały plik .htaccess:

RewriteEngine On
RewriteBase /

RewriteRule ^([a-zA-Z_]+)$ index.php?id=$1 [L]

Troszkę się rozpisałem, ale to w nadziei że ktoś z życzliwych będzie mi w stanie pomóc.

Pozdrawiam i jeszcze raz proszę o pomoc.

Niedrogie wpisy w płatnych, zadbanych, długowiecznych katalogach (hurtem taniej - pisać na PW):

Odnośnik do komentarza
Udostępnij na innych stronach

Mój cały plik .htaccess: ...
Na stronie są przyjazne linki i do tego działające całkiem dobrze, natomiast w htaccess który podałeś nie ma żadnej regułki od tego. Jak to jest, jak zrobione masz przyjazne linki ?

Nie znam się na pozycjonowaniu, ja tu tylko zużywam transfer i miejsce w sql.

Roman Kluska ujawnia: nadchodzi INFLACYJNY ARMAGEDON!

 

Odnośnik do komentarza
Udostępnij na innych stronach

Irku bo poki nie znalazlem rozwiazania to dalem tymczasowo kilka regulek do konkretnych glownch dzialow.

I tylko dlatego one dzialaja dziala.

Tzn. killa razy dalem:

RewriteRule ^linki /index.php?id=linki [L]

aby mi linkowanych podstron nie wyindeksowalo.

Niedrogie wpisy w płatnych, zadbanych, długowiecznych katalogach (hurtem taniej - pisać na PW):

Odnośnik do komentarza
Udostępnij na innych stronach

Sprawdź htaccess w nadrzędnych katalogach.

Do rewrite base dodaj twój katalog jeżeli trzeba.

Spróbuj tak:

RewriteRule ^([a-zA-Z_]*?)\/?$ /index.php?id=$1 [L]

lub

RewriteRule ^([a-zA-Z_]+)\/?$ /index.php?id=$1 [L]

nihil fit sine causa

Odnośnik do komentarza
Udostępnij na innych stronach

Ok, sprawdze po przyjsciu z pracy.

Hekko pisze zeby zajrzec do pomocy. No to jestem ciekawy jak w tej pomocy mam cos znalezc. Klik.

Gd napisalem do supportu z moim problemem napisano mi zebym zajrzal do error logow, a oni sprawami technicznymi klientow i ich skyptow sie nie zajmuja. No ale to zaden skrypt, jak case i switch dzialaja to wina musi lezyc po stronie regulek.

No dobra bo czas na autobus isc :)

Pozdrawiam

Niedrogie wpisy w płatnych, zadbanych, długowiecznych katalogach (hurtem taniej - pisać na PW):

Odnośnik do komentarza
Udostępnij na innych stronach

i oczywiscie jak support powiedzial to zajrzales do error logow i sprawdziles czy nie ma tam nic o przekroczeniu liczby redirecretow, zapetleniu itd czy tak po prostu sobie piszesz na forum bo liczysz, ze tu ktos rozwiaze problem bez znajomosci logow za pomoca szklanej kuli? ;)

pozdrowienia.

googlerulz.

Odnośnik do komentarza
Udostępnij na innych stronach

Sprawdź htaccess w nadrzędnych katalogach.

Do rewrite base dodaj twój katalog jeżeli trzeba.

No no, cos dziala.

Stworzylem katalog o nazwie winka, umiescilem w nim plik index.php, jeden plik partnerzy.php majacy sie includowac oraz oczywiscie .htaccess o zawartosci:

RewriteEngine On
RewriteBase /winka/

RewriteRule ^([a-zA-Z_]+)\/?$ /index.php?id=$1 [L]

I teraz wpisujac:

www.adres.pl/winka/partnerzy

smiga elegancko.

Jednak gdy w katalogu glownym dam ten sam htaccess tylko, ze ze zmienionym odpowiednio RewriteBase - podstrony nie dzialaja ;/

No szlag mnie trafia :)

i oczywiscie jak support powiedzial to zajrzales do error logow

Oczywiscie, w error logu mam tylko komunikaty:

[Fri May 09 22:39:52 2008] [error] [client 74.6.20.241] File does not exist: /home/wina/domains/winka.net/public_html/wino/dzban,lesny,ostrowin

[Fri May 09 22:39:52 2008] [error] [client 74.6.20.241] File does not exist: /home/wina/domains/winka.net/public_html/404.shtml

Ktore mi niewiele mowia.

Pozdrawiam

Niedrogie wpisy w płatnych, zadbanych, długowiecznych katalogach (hurtem taniej - pisać na PW):

Odnośnik do komentarza
Udostępnij na innych stronach

Wczoraj chyba byłem wolno myślący ;)

Powinno być tak:

RewriteRule ^([a-zA-Z_]+)\/?$ index.php?id=$1 [L]

PS

A skoro działa ci to:

RewriteRule ^linki /index.php?id=linki [L]

to powinno też działać to:

RewriteRule ^([a-zA-Z_]+) index.php?id=$1 [L]

nihil fit sine causa

Odnośnik do komentarza
Udostępnij na innych stronach

to powinno też działać to:

Niestety Twoj kod powoduje blad:

Internal Server Error

A pierwsz kod oczywiscie nie zadzialal, bo jakby bylo inaczej ;/ Juz powli trace nadzieje.

Dzieki za pomoc lolaxxxxx, napisalem jeszcze raz do supportu, troszke bardziej emocjonalnie. Moze w koncu mi pomoga.

-------------------------------------------------------------

Edycja z dziś:

Kolejny dzień walki, doszedlem do etapu, ze dziala regulka w postaci:

RewriteRule ^([^./]+)\.html$ /index.php?id=$1 [L]

z tym ze nazwa jest z rozszerzeniem .html. Oczywiscie ja jej nie chce wiec sie pozbywam w ten sposob:

RewriteRule ^([^./]+)\$ /index.php?id=$1 [L]

i juz nie dziala.

Jakies sugestie ?

Wiem, ze mecze Was, ale zalezy mi.

Pozdrawiam

Niedrogie wpisy w płatnych, zadbanych, długowiecznych katalogach (hurtem taniej - pisać na PW):

Odnośnik do komentarza
Udostępnij na innych stronach

Przepraszam z gory za zduplikowany post, ale znalazlem rowiazanie swoich problemow. Przy okazji stwierdzam, ze admini serwera sa malo pomocni. Okazalo sie ze na tym serwerze nalezy zastosowac pewne dodatkowe regulki, o ktorych na pewno wiedza admini, jednak pomocy od nich uzyskac po prostu nie mozna.

Wielkie dzieki NetEasy "za pomoc".

Dla osob ktore beda mial podobne problemy do moich ponizej podaje kod, ktory powinien zadzialac.

AcceptPathInfo Off
Options +FollowSymLinks -MultiViews
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^(.*)$ index.php?id=$1 [L]

Dwie regulki RewriteCond nalez dodawac przed kazdym RewriteRule.

Pozdrawiam i dziekuje wszstkim, ktorzy starali sie mi pomoc za ... pomoc :P

Niedrogie wpisy w płatnych, zadbanych, długowiecznych katalogach (hurtem taniej - pisać na PW):

Odnośnik do komentarza
Udostępnij na innych stronach

moze ja mam jakies zle podejscie ale support jakiegokolwiek hostingu raczej nie jest od tego zeby ci pomagac z mod rewrite.. w kazdym razie dobrze, ze ci sie udalo. teraz moglbys na tym winka.net zrobic cos zeby po kliknieciu nie wyskakiwaly w kolko bledne odniesienia do include w rodzaju

Warning: include(bianco.php) [function.include]: failed to open stream: No such file or directory in /home/wina/domains/winka.net/public_html/index.php on line 114

pozdrowienia.

googlerulz.

Odnośnik do komentarza
Udostępnij na innych stronach

Podaj kod calego htaccessa.

Niedrogie wpisy w płatnych, zadbanych, długowiecznych katalogach (hurtem taniej - pisać na PW):

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