Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [PHP]URL w stylu katalogów

Napisany przez: konrados 10.05.2008, 19:02:21

Cześć,

Chodzi o to by server dał stronkę gdy url wygląda np. tak: stronka.com/tags/cos_tam
zamiast: stronka.com/tags.php?show=cos_tam

Już kiedyś o to pytałem:
http://forum.php.pl/index.php?showtopic=87874&hl=

I nawet się udało - bez zbędnych komplikacji. Gdy mam już plik w rodzaju tags.php to okazuje się, że bez zmian w .htaccess mogę dołożyć coś do url'a i to odczytać, więc nie ma problemu z url'em typu:
stronka.com/tags/cos_tam

Ale teraz
próbuję to samo zrobić dla strony głównej, czyli: stronka.com/cos_tam gdzie "cos_tam" to kwerenda i jest zmienna, konkretnie jest to login usera.

I nie wiem co teraz mam zrobić. Oczywiście ma się odpalić plik index.php który nastęnie zauważy że coś jest w url'u dodane - ale nie wiem jak skłonić apach'a by w ogóle otworzył plik index.php - coś pewnie muszę wstawić do .htaccess tak? Tylko co?

Jeśli nadmiernie skomplikowałem to tutaj w skrócie:
jest sobie index.php w katalogu głównym servera stronka.com - gdy user wpisze stronka.com/cos_tam w pasku adresu chcę by odpalił się index.php w owym katalogu głównym a z resztą sobie poradzę.

Napisany przez: webdicepl 10.05.2008, 19:06:14

Nie wiem czy Cię dobrze zrozumiałem.

Kod
RewriteRule ^([^/]+)& index.php?var=$1


Poczytaj sobie o wyrażeniach regularnych bo będą Ci potrzebne.

Napisany przez: konrados 11.05.2008, 12:05:28

Dzięki, ale nie działa... zrobiłem w .htaccess:


CODE

RewriteEngine On
Options +FollowSymLinks
RewriteRule ^([^/]+)& index.php?var=$1



I nadal widzę 404 gdy wchodzę na stronka.com/cos_tam. Może coś powinienem jeszcze dodać?

p.s. poczytam o wyrażeniach regularnych, ciągle to odkładam:) ale tutaj chyba jest raczej jakiś inny problem?

Napisany przez: Legro 11.05.2008, 12:51:35

Takie linki idzie zalatwic za pomoca http://pl.php.net/pathinfo

Napisany przez: konrados 11.05.2008, 13:48:55

Cytat
Takie linki idzie zalatwic za pomoca http://pl.php.net/pathinfo

Tak, wiem - jak już server otworzy index.php to ja już sobie poradzę z sparsowaniem url'a - ale problem jest taki, że widzę 404 - brak pliku. Nie mam więc szansy skorzystania z pathinfo.

Metodą prób i błędów zrobiłem takie coś:

Kod
RewriteRule ^([a-z0-9]+)$ index.php/$1


I wygląda jakby działało ale nie mam pojęcia czemu. Czy dobrze to zrobiłem?

Napisany przez: Legro 11.05.2008, 15:39:43

Cytat
I wygląda jakby działało ale nie mam pojęcia czemu.

yy..questionmark.gif

Kod
RewriteRule ^([a-z0-9]+)$ index.php?var=$1

questionmark.gif?

Napisany przez: konrados 11.05.2008, 15:49:15

Cytat
RewriteRule ^([a-z0-9]+)$ index.php?var=$1

No to też działa:)
Moje działa być może w związku z jakimiś ustawieniami apacha - przekierowuje na "index.php/zmienna" i server nie pyskuje - daje tę stronę a w niej (w index.php) używam $_SERVER['PATH_INFO'] by wydobyć "zmienna" i jakoś tam działa.

Tylko cały czas nie wiem po co ten + (plus) za ] - wziąłem go z przykładu usera webdicepl, ale co tam, jak na razie działa ...

I tak oto po raz kolejny uniknąłem konieczności uczenia się wyrażeń regularnych smile.gif

Napisany przez: webdicepl 11.05.2008, 16:02:40

Kod
([a-z0-9])


Znak z przedziału a - z oraz 0 - 9.

Kod
([a-z0-9]+)


Znaki z przedziału a - z oraz 0 - 9.

Napisany przez: konrados 11.05.2008, 16:12:05

O, dzięki!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)