Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

mod_rewrite si PHP
Vezi mesajul original
Du-te la pagina 1, 2  Următoare
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Subiectul anterior :: Subiectul următor  
Autor Mesaj
strategy



Data înscrierii: 19/Noi/2004
Mesaje: 351
Locație: Oradea

Trimis: Mar Feb 22, 2005 9:27 pm    Titlul subiectului: mod_rewrite si PHP  

m-am tot uitat unde sa postez asta in forum .. numa nu i-am gasit un loc .. moderatorilor -> daca nu-i bine mutati-l voi unde trebuie sau faceti-i un threat .. cu scuzele de rigoare ..

acuma ma chinui cu .htaccess, idea ii asta:
--- vreau sa fac URL-u din
a.
www.mydomain.com/index.php?getCategorie=text
--- in ---
www.mydomain.com/text.html
b.
www.mydomain.com/index.php?getCategorie=text&idText=123
--- in ---
www.mydomain.com/text/123.html

asta o pot face usor cu niste reguli in .htaccess

a.
RewriteEngine on
RewriteRule ^(.*)\.html$ /index.php?getCategorie=$1 [L]
b.
RewriteEngine on
RewriteRule ^(.*)/(.*)\.html$ /index.php?getCategorie=$2&idText=$1 [L]

bun .. acum intrebarea ..
#
de cate ori apelez in script www.mydomain.com/text/123.html shtie sa ia variabilele get ..
Cum pot face ca in script sa NU folosesc www.mydomain.com/text/123.html' CI www.mydomain.com/index.php?getCategorie=text&idText=123 dar sa-mi afiseze www.mydomain.com/text/123.html
#
voi cum faceti ?
astept sfaturi, multumesc anticipat
Sus  
strategy



Data înscrierii: 19/Noi/2004
Mesaje: 351
Locație: Oradea

Trimis: Mie Feb 23, 2005 12:44 pm    Titlul subiectului:  

hmmm .. chiar nimeni ?
Sus  
arond



Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1

Trimis: Mie Feb 23, 2005 1:10 pm    Titlul subiectului:  

Incearca asta: Cod: RewriteEngine on
RewriteRule ^(.*)/(.*)\.html$ /index.php?getCategorie=$2&idText=$1 [L,QSA] QSA - in loc sa fie inlocuit query string-ul original, se adauga la el... ar trebui sa faca ce vrei tu, daca am inteles eu bine.

Numa' bune.
Sus  
strategy



Data înscrierii: 19/Noi/2004
Mesaje: 351
Locație: Oradea

Trimis: Mie Feb 23, 2005 1:22 pm    Titlul subiectului:  

hmm .. idea era alta .. io vreau sa codez in php normal .. adica cu .php?getCat=cars&sprint=23 .. m`i se pare mai comod ..
si at .. cu .htaccess cumva nu shtiu cum toate linkurile de genu ala sa le taie ceva in genu /cars/sprint/23.html adica sa mascheze url-u ..

pot sa fac daca in php scriu /cars/sprint/23.html .. iar .htacces-u .. shtie ca ii mod normal nu ar arata asa link-u ci ala .php?getCat... shi imi ia variabilele GET ..

acuma ai mai intzeles ?
Sus  
arond



Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1

Trimis: Mie Feb 23, 2005 1:38 pm    Titlul subiectului:  

Cod: RewriteEngine on
RewriteRule ^(.*)/(.*)\.html$ /index.php?getCategorie=$2&idText=$1 [L] face ce vrei tu. Nu inteleg care e problema.

Daca vrei sa-ti modifice link-urile propriu-zise in codul tau HTML nu are nici o legatura... mod_rewrite e destinat sa rescrie URL-uri transmise serverului Apache, nu sa modifice continutul livrat de serverul web.

Cu alte cuvinte, daca vrei ca <a href="/index.php?getCategorie=articol&idText=123"/> sa devina automat <a href="/articol/123.html"/> nu se poate decat daca o faci de mana (fie atunci cand generezi pagina, fie cu output buffering + regexp).

Numa' bune.
Sus  
strategy



Data înscrierii: 19/Noi/2004
Mesaje: 351
Locație: Oradea

Trimis: Mie Feb 23, 2005 3:16 pm    Titlul subiectului:  

lasa am rezolvat .. nu m-ai inteles :D
acuma am alta problema ..

Citat: RewriteEngine on

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

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([0-9]+)\.html$ list.php?parentarea=$1&area=$2 [L]

cred ca tzi-ai dat seama ce face asta .. daca nu .. idea ii asta in pagina principala am o groaza de linkuri spre dirferite categorii cand dau pe o categorie ma trimite la list.php .. cu un switch afisez pe categorii acuma ..
in mod normal in address bar .. o sa fie www.domain.com/categorie/ pt prima regula .. shi www.domain.com/categorie/123.html pt a doua .. in list.php o sa am trimiteri la link cu <a href="/categorie/"></a> ..

ce nu intzeleg acuma ii de ce nu imi merge css cand introduc a doua regula cea cu .html .. merge css-u cand o scot si o las numai pe prima ..
ce banuiesc ii ca imi aplica regula si pt 'css/default.css' .. acolo se afla fisieru de css .. da-mi ceva idee sa rezolv faza asta ..
Sus  
octavian.p



Data înscrierii: 10/Feb/2005
Mesaje: 10

Trimis: Mie Feb 23, 2005 4:59 pm    Titlul subiectului:  

in <head>

<base href="http://domeniu/">

fisierul css si chiar imaginile sunt cautate in directorul rescris
/[sub]categorie/ care bingo nu exista asa ca trebuie o cale absoluta ptr imagini, css + eventuale linkuri ...
Sus  
strategy



Data înscrierii: 19/Noi/2004
Mesaje: 351
Locație: Oradea

Trimis: Joi Feb 24, 2005 1:15 pm    Titlul subiectului:  

n-am putut nici cum sa izolez css/default.css si scripts/default.js .. da-mi un hint .. m-am prins pana la urma .. am vazut un RewriteLogLevel 9
RewriteLog logs/rewrite.log ..
Sus  
aurelian



Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti

Trimis: Joi Feb 24, 2005 1:54 pm    Titlul subiectului:  

Ptr. debug:
1/
an style="color: #000000"><?php RewriteLogLevel 9 RewriteLog logs/rewrite.log 
se pune in httpd.conf.
In productie e bine sa pui un nivel mai mic de debug.
2/
Presupunand ca folosesti tagul <base href="" /> in head,
un alt mijloc de debug: foloseste firefox, incarca pagina ta si in Tools/Java Script Console o sa ai ceva informatii.
(de ex:
Error: The stylesheet http://localhost/temos/default.css was not loaded because its MIME type, "text/html", is not "text/css".
)
3/
O resursa super buna ptr. mod_rewrite este forumul Sitepoint/Apache.
http://www.sitepoint.com/forums/search.php?searchid=1323924
Sus  
strategy



Data înscrierii: 19/Noi/2004
Mesaje: 351
Locație: Oradea

Trimis: Joi Feb 24, 2005 8:49 pm    Titlul subiectului:  

merci aurelian .. primu lucru ce fac cand dau de bai ii log .. :D am facut aia prima data ..
folosesc shi java tools C. ,, nu aveam in head base .. ca nu am stiu de asta ..

oricum .. merci de ajutor am rezolvat toate erorile .. ce am facut .. ii ca tot ce are extensie jpg|gif|png|js|css mod_rewrite sa nu aplice reguli .. pt moment am creat in directoarele de imagini|functii|css un .htaccess pt asta .. dar cu timpu o sa fac o regula mai complexa in .htaccess de pe root ..

apropo ... thread`u asta .. merita continuat .. si pt altii care vor sa faca sau sa invete mod_rewrite ..

multumesc celor care m-au ajutat
Sus  
aurelian



Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti

Trimis: Joi Feb 24, 2005 9:09 pm    Titlul subiectului:  

Ar fi o chestie interesanta, pentru ca sincer sa fiu in momentul de fata fac asa:
an style="color: #000000"><?php RewriteEngine Off 
in directoarele cu .jpg (.css si altii)
O metoda care nu e prea eleganta :)
Sus  
Emil



Data înscrierii: 16/Noi/2003
Mesaje: 301
Locație: echo $REMOTE_ADDR

Trimis: Vin Feb 25, 2005 9:27 am    Titlul subiectului:  

octavian.p a scris: in <head>

<base href="http://domeniu/">

fisierul css si chiar imaginile sunt cautate in directorul rescris
/[sub]categorie/ care bingo nu exista asa ca trebuie o cale absoluta ptr imagini, css + eventuale linkuri ...
Sau RewriteBase

Chestii interesante si rapide se pot obtine si cu un custom ErrorDocument, mai exact un 404 inteligent cum are php.net.
Sus  
strategy



Data înscrierii: 19/Noi/2004
Mesaje: 351
Locație: Oradea

Trimis: Vin Feb 25, 2005 3:05 pm    Titlul subiectului:  

emil .. <base href="http://localhost/" />
mai optimizat .. sa vada si altii ca base nu are tag de inchide ca si <div></div> .. plus de Rewritebase la mine nu mere :D nu are nici un efect .. sa mor de nu! .. doar daca folosesc base ..
Sus  
strategy



Data înscrierii: 19/Noi/2004
Mesaje: 351
Locație: Oradea

Trimis: Lun Feb 28, 2005 8:05 pm    Titlul subiectului:  

cum fac sa nu-mi listeze ca pe un ftp continutul directoarelor acolo unde nu exista index.

in httpd.conf ii pus sa caute prioritar dupa index: .html .php .htm

nu vreau sa pun nici user/parola, stiu sa fac asta
nu vreau sa banez ip-uri

doar sa nu listeze, in schimb ar fi bine sa trimita spre un notallowedhere.php gen ErrorDocument 404 404.php modelat dupa cum ar arata site-ul.
Sus  
aurelian



Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti

Trimis: Lun Feb 28, 2005 9:29 pm    Titlul subiectului:  

cu un .htaccess in directorul in care vrei sa restrictionezi accesul:
an style="color: #000000"><?php Options -Indexes ErrorDocument 403 http://_LOCATIA_TA_ ErrorDocument 404 http://_LOCATIA_TA_ 
Daca vrei ca asta sa fie regula generala ai 2 optiuni:
or pui .htaccessul respectiv in DOCUMENT_ROOT (hmm)
or faci modificarile (nerecomandat) direct in httpd.conf
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat Du-te la pagina 1, 2  Următoare
Pagina 1 din 2


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community