Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> .htaccess i pusty GET
jacek21
post
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 2
Dołączył: 13.06.2012

Ostrzeżenie: (0%)
-----


Witam,

W ramach bliższego zapoznania się z .htaccess postanowiłem zobaczyć z czym to się je, lecz już na samym początku klapa.

.htaccess
Kod
RewriteEngine On
RewriteBase /
#...
DirectoryIndex index.php
RewriteRule ^/?(.*)/(.*)/$ index.php?include=$1&d=$2 [NC,QSA,L]


index.php
Kod
[...]
<base href='http://localhost/darkraven/'></base>
#przykładowy link:
<a href="index.php/yes/loguj" alt='aa'>loguj</a>
#standardowo link wyglada podobnie jak w .htaccess, ale napisze:
<a hred='index.php?include=yes&d=loguj></a>

<?php
print_r($_GET); // Array();
?>
[..]


Powiecie mi dlaczego nie istnieje get ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jacek21
post
Post #2





Grupa: Zarejestrowani
Postów: 52
Pomógł: 2
Dołączył: 13.06.2012

Ostrzeżenie: (0%)
-----


Nie jest tak, pytając niczego nie oczekuje jedynie mam nadzieję, że ktoś coś podpowie, nie liczę na to, że ktoś mi da gotowca czy też nawet, że ktoś w ogóle odpisze..
Przeczytałem już kilka kursów, ale brak mi doświadczenia z pracą w .htaccess'ie. a trudno go nabrać skoro kombinuję jak mogę, przeszukałem już pół google i do czego bym się nie zastosował wychodzi to samo.

Podaję objawy, piszę co się dzieje, co zmieniam, podaje linki cały czas opieram się na 2 i tych samych wersjach linków:
<a hre='yes/ogloszenia'></a> czyli: http://localhost/darkraven/yes/ogloszenia
<a hre='yes/ogloszenia/'></a> czyli: http://localhost/darkraven/yes/ogloszenia/

ponieważ cały czas próbuje uzyskać ten sam efekt, żeby wersja linku pierwszego również działał, w linkach nic nie zmieniam bo co ja tam mogę zmienić jeśli chodzi mi jedynie o slash'a na końcu ?

Przepraszam, ale w ogóle nie wiem dlaczego masz do mnie pretensje ? co ja mogę więcej napisać ? jeśli brakuje ci jakiś informacji i chcesz pomóc to zadaj pytanie a nie oskarżaj mnie, że w ogóle nie wykazuje żadnego zainteresowania bo tak nie jest, nie będę przecież pisał tutaj wszystkiego co robię bo jaki to ma cel ?
Go to the top of the page
+Quote Post
sowiq
post
Post #3





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(jacek21 @ 25.04.2013, 16:11:00 ) *
Przepraszam, ale w ogóle nie wiem dlaczego masz do mnie pretensje ?

Kolego, nie mam do nikogo żadnych pretensji. Po prostu odniosłem wrażenie, że wklejasz sobie rozwiązanie i na forum piszesz, że coś nie działa, bez żadnych szczegółów. Jeśli tak nie jest, to przepraszam.

Wracając do rzeczy - robisz zbyt ogólne wyrażenia regularne. Do takiego wzorca: /(.*)/ będzie pasowało wszystko to: /foo/, /foo-bar/, /foo/bar/baz/, //. Kropka oznacza dowolny znak, gwiazdka dowolną ilość powtórzeń (również zero). Dlatego Twoje reguły mieszają się między sobą.

Zamiast /(.*)/, dużo lepszym pomysłem jest dawać: /([^/]+)/, czyli jeden lub więcej znaków różnych od / otoczonych slashami. Taki wzorzecz będzie pasował do /foo/ i /foo-bar/, ale do /foo/bar/baz/ i // już nie.

Zakładając, że będziesz miał dwa typy adresów:
- /yes/ogloszenia
- /no/ogloszenia

powinieneś zrobić taką regułę:
Kod
RewriteRule ^(yes|no)/([^/]+)/?$ index.php?include=$1&d=$2 [NC,L]


Do tego wszystkie (.*) pozamieniać na podane wcześniej ([^/]+). Warunku na początkowy slash możesz nie pisać, bo i tak nie jest nigdy dodawany. Końcowy - owszem.

Odpaliłem i sprawdziłem. U mnie wszystko działa. Jeśli u Ciebie nie chce, to znaczy, że Twój problem leży gdzie indziej.
Kod
DirectoryIndex index.php

RewriteEngine On
RewriteBase /darkraven/

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* - [PT,L]

RewriteRule ^([^/]+)/([^/]+)/([0-9])/?$ index.php?include=$1&d=$2&id=$3 [NC,L]
RewriteRule ^(yes|no)/([^/]+)/?$ index.php?include=$1&d=$2 [NC,L]

Pozdrawiam.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 01:26