Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] rewrite + htaccess, problem
Cr3V_86
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 5.11.2008

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


witam
Nie wiem czy dobry dział wybrałem winksmiley.jpg

Mam problem z modrewrite

tzn chce mieć tak że zamiast

strona.pl/profile.php?username=Cr3V_86

powinno być strona.pl/Cr3V_86

Od strony php wszystko działa mam tak jak chce czyli :

strona.pl/Cr3V_86

tyle że mam problem z htaccess
Mianowicie wstawiłem tam :

RewriteRule ^profile.php?username=([1-9][1-9][a-z][A-Z])$ profile.php?username=$1

jednak zamiast zamieniać adres to dodaje mi nazwe pliku php do adresu ww :

strona.pl/profile.php?username=

dodałem :
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

aby przy błędzie wracało usera do strony głównej

tak wygląda cały kod jaki wstawiłem w htaccess


Options FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
RewriteRule ^profile.php?username=([1-9][1-9][a-z][A-Z])$ profile.php?username=$1

nie mam pojęcia co dalej z tym zrobić , słaby jestem w phhp winksmiley.jpg niby coś znam ale jednak prosze o pomoc łopatologiczną winksmiley.jpg
Go to the top of the page
+Quote Post
cbagov
post
Post #2





Grupa: Zarejestrowani
Postów: 181
Pomógł: 18
Dołączył: 19.04.2008

Ostrzeżenie: (10%)
X----


Chcesz: strona.pl/Cr3V_86

a sprawdzasz: RewriteRule ^profile.php?username=([1-9][1-9][a-z][A-Z])$ profile.php?username=$1

czyli czy jest: ^profile.php?username=([1-9][1-9][a-z][A-Z])$

a powinienes chyba: ^(...)$

czyli: RewriteRule ^(...)$ profile.php?username=$1

gdzie w wyrazeniu ^(...)$ tez masz balagan bo na pewno nie pasuje ono do podanego ciagu jaki podajesz w URL.

Jak ma sie spasowac niby Cr3V_86 przez ([1-9][1-9][a-z][A-Z]) ? Masz 3 problemy a nie jeden i powstala lekka motyka.


Najpierw spasuj przez ^(.*?)$ doswiadczalnie czyli biorac calosc zza /.
Potem dopracuj sobie wyrazenie jesli faktycznie potrzebujesz sprawdzac kazda literke z przekazywanego parametru.

Np dla Cr3V_86 moze byc ^([a-zA-Z1-9]*_\d\d)$ albo ^([a-zA-Z1-9]{4}_\d\d)$ ale to nietestowany przyklad choc powinien dzialac.

Takze sprawdz i chwal sie dalej.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 13:11