Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Krótkie linki i .htaccess
Forum PHP.pl > Forum > Przedszkole
piotrek442
Witam , mam linki typu
  1. <a href="index.php?page=login">Zaloguj</a>

i mam pytanie do was, jak zrobić zeby uzyskać takie coś -> strona.pl/login ?
próbowałmem na wiele sposobów ale nie działa mi to ;/
YourFrog
Masz napisaną już aplikacje i próbujesz ją dostosować do przyjaznych linków czy piszesz dopiero aplikację ?

Jeżeli dopiero piszesz to blog nospor "przyjazne linki". Ładnie opisuje jak i z czym to zjeść. Ewentualnie jakiś system routingu np symfony2.
piotrek442
treść jego artykułu jest bardzo rozwinięta a ja chcę tylko skrócić adres..

wpisuje takie coś:


  1. Options FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^index.html$ index.php [L]
  4. RewriteRule ^(.+)/(.+).html$ index.php?page=$1

ale to nie działa ;/
nospor
To nie są "krotkie linki" tylko "ładne linki". Poczytaj, w necie jest pelno wyjasnien o co chodzi.

Kod
RewriteEngine On  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule ^(.*)$ index.php?page=$1

I juz.
piotrek442
przepraszam , coś mnie zaćmiło..
wchodziłem cały czas poprzez link
  1. <a href="index.php?page=login">
i czekąjac az się zamieni facepalmxd.gif
teraz dotarło do mnie że musze to zmienić na
  1. <a href="/login">


wielkie dzięki!
nospor
Super.... tylko nastepnym razem nie kasuj postow, gdy ktos na nie juz odpowiedzial, bo wowczas posty odpowiadajacego wygladają debilnie :/
piotrek442
wiem wiem net mi zmulił i nie zauważylem ze odpowiedziałeś tongue.gif

możesz skasowac tamtą odpowiedź bo już mi działa!!

DZIĘKI jeszcze raz guitar.gif
Rufus_84
witam
kod:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?id=$1

działa

Ale jak chcę zmienić adres index.php?id=1&page=1

za pomocą RewriteRule ^(.*)(.*)$ index.php?id=$1page=$2
to już nie działa.

Proszę o wskazówkę...

Pozdrawiam

Rafał
nospor
No ale co to jest: (.*)(.*) questionmark.gif
Podales tu dwie dokladnie takie same reguly, wiec pierwsza lapie je dwie. Bez sensu. Moze jakis rozdzielacz miedzy nimi bys wstawil? Jak wyglada adres URL ze page=1?
Rufus_84
cały adres wygłąda tak index.php?id=1&film=v1.php&page=1

nospor
Ja sie pytam o ładny adres jak wyglada.
Rufus_84
za pomocą kodu

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?id=$1&film=$2.php&strona=$3 [L]

adres ladny wygląda 1/v1.php/1 ,ale po przejściu do srony film=v1&page=1 nie są wczytywane style css

pomyłka. jednak nie dziala. zmienia na ladny url ale wywala do indexu bez css
nospor
css, js, obrazki mają mieć pelny adres a nie tylko koncowke

RewriteRule ^(.*)$ index.php?id=$1&film=$2.php&strona=$3 [L]
Jakim sposobem to ma ci zwrocic $2 i $3 jesli masz tylko jeden nawias?
Rufus_84
Witam ponwownie. Znowu mam mały problem.

htacces wyglada nast:

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$ index.php?id=$1&img=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.*)$ index.php?id=$1&film=$2&strona=$3 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$ index.php?id=$1&page=$2#pag_top [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$ index.php?id=$1&page=$2#pag_bottom [L]

Problem polega na tym, że nie działa czwarta grupa lub druga jeżeli zamienie je (wpiszę je w pliku) kolejnością...
Jaka może byc tego przyczyna?

Pozdrawiam
Rafał
nospor
POdales dwie identyczne regulki. NIby skad htaccess ma wiedziec po czym je rozrozniac?
RewriteRule ^(.*)/(.*)$ index.php?id=$1&img=$2 [L]
RewriteRule ^(.*)/(.*)$ index.php?id=$1&page=$2#pag_top [L]
Te pogrubione niczym sie nie roznią a powinny jesli mają przekierowywac na rozne adresy
Rufus_84
to czym powinny się różnić? Będę wdzęczny za pomoc...
nospor
A skad ja mam wiedziec? To ty wiesz jak wygladają Twoje linki a nie ja.
Rufus_84
pierwszy wygląda tak: <a href="'index.php?id=partner&img='.$img.'">, który zmieniłem na <a href="'.$full.'/partner/'.$img.'">

a drugi: <a href="'index.php?id='.$pageid.'&page='.$i.'#pag_top"> zmieniłem na <a href="'.$full.'/'.$page_id.'/'.$i'">

działa jeden z nich, w zależności od tego w jakiej kolejności wpisze komende w htaccess.

nospor
czyli $img to tekst a $i to liczba?
No to juz wiesz czym sie roznia. w jendym masz szukac samych cyfr, a w drugim nie
Rufus_84
zmieniłem na:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/([a-zA-Z0-9]+)$ index.php?id=$1&img=$2 [L]

img zawiera tez cyfry

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/([0-9]+)$ index.php?id=$1&page=$2 [L]

i nadal nie dziala to drugie. Adres sie zmienia ale nie przechodzi na kolejna strone...
nospor
Ale zamien kolejoscią.
Rufus_84
Działa. Dzięki za pomoc. A dlaczego kolejnośc ma znaczenie?

nospor
Pomysl przez chwilke. To naprawde dosc logiczne jest.
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.