2009-07-10 41 views
5

Zajmuję się tworzeniem strony internetowej zawierającej 3 strony (Strona główna, strona2, strona3) ... na drugiej stronie znajduje się pasek nawigacyjny z 4 elementami (podstroną1, podstroną2, ...), których używam do zastąpienia treść strony 2 za pomocą zmiennych URL! Innymi słowy, drugi element paska nawigacji w STR.2 punktów:Dlaczego ta RewriteRule nie działa?

http://localhost/uk/page2/index.php?pg=subpage2 

punkt pozycja 3 do:

http://localhost/uk/page2/index.php?pg=subpage3 

Teraz chciałbym użyć bardziej przyjaznych adresów URL poprzez .htaccess!

Pisałem to:

RewriteEngine On 
RewriteRule /uk/page2/(.*)/$ /uk/page2/index.php?pg=$1 

w .htaccess umieszczonym w katalogu!

Ale nie działa! Proszę pomóż !!!

Odpowiedz

9

Kiedy używasz .htaccess nie masz wiodącą ukośnik:

RewriteEngine On 
RewriteRule ^uk/page2/(.*)/$ /uk/page2/index.php?pg=$1 
+0

Dzięki za odpowiedź! Również z tym, przepisanie nie działa !!! –

+0

Kiedy mówisz, że to nie działa, co się dzieje dokładnie? – Greg

+0

Spróbuj po prostu umieścić śmieci w pliku .htaccess - powinieneś otrzymać 500 błędów serwera. Jeśli nie, twój plik .htaccess nie jest ładowany. – Greg

0

To może być ukośnik na końcu, więc zmienić to:

RewriteEngine On 
RewriteRule /uk/page2/(.*)/$ /uk/page2/index.php?pg=$1 

temu :

RewriteEngine On 
RewriteRule ^(.*)uk/page2(/?)(.*)$ /uk/page2/index.php?pg=$3 

Inną rzeczą, którą należy sprawdzić jest to, że masz AllowOverride ustawiony Wszystko w pliku httpd.conf, w stead of None. Jeśli jest ustawiony na None, nie będziesz mógł nic zrobić z .htaccess.

2

G'day,

sugeruję włączenie opcji config RewriteLog na wysokim poziomie, aby sprawdzić, co się rzeczywiście dzieje pod kołdrą.

Has AllowOverides been enabled?</obvious> (-: 

Wygląda na to, że jesteś pecha używając .htaccess

Niesamowicie mod_rewrite zapewnia manipulacje URL w kontekście per-katalogu, czyli w plikach .htaccess, chociaż są one osiągnęły bardzo długo po przetłumaczeniu adresów URL na nazwy plików. Musi tak być, ponieważ pliki .htaccess znajdują się w systemie plików, więc przetwarzanie osiągnęło już ten etap. Innymi słowy: Zgodnie z fazami API w tej chwili jest już za późno na wszelkie manipulacje pod adresem URL. - Apache mod_rewrite doc.s (podkreślenie moje)

Powiązane problemy