Buna am si eu o problema cu mod rewrite. Eu am aceasta pagina:
citeste_stire.php?titlu=Fenomen-incredibil-in-Brazilia-20tornada-de-foc!&id=7
Cum as putea so transform in forma asta:
Fenomen-incredibil-in-Brazilia-tornada-de-foc.html??
Eu am incercat asa dar nu merge:
RewriteRule ^citeste-(.*)-(.*).html /citeste_stire.php?titlu=$1&id=$2
plS helP
Problema Mod Rewrite
-
- Mesaje:313
Problema Mod Rewrite
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?
MarPlo
Mesaje:4343
Incearca asa:
- Iar link-ul trebuie sa fie: Fenomen-incredibil-in-Brazilia-tornada-de-foc_7.html
numarul de la urma, dupa "_" , e necesar pt. id
Cod: Selectaţi tot
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z -]+)_([0-9]+).html$ citeste_stire.php?titlu=$1&id=$2 [NC,L]
numarul de la urma, dupa "_" , e necesar pt. id
claUdiu
Mesaje:313
Multumesc, am fkt cum miai zis tu dar akm imi da 500 internal server error si cand sterg tot din htaccess imi merge carea ar fi problema??
In .htaccess am:
In .htaccess am:
Cod: Selectaţi tot
RewriteEngine on
RewriteBase /
RewriteRule ^acasa.html$ /index.php
RewriteRule ^([a-zA-Z -]+)_([0-9]+).html$ citeste_stire.php?titlu=$1&id=$2 [NC,L]
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?
MarPlo
Mesaje:4343
Nu stiu care sa fie problema, incearca formula rewrite asa:
RewriteRule ^domeniu_site/([a-zA-Z -]+)_([0-9]+).html$ citeste_stire.php?titlu=$1&id=$2
- Daca si asa da eroare, nu am idee. Poate stie altcineva mai bine.
RewriteRule ^domeniu_site/([a-zA-Z -]+)_([0-9]+).html$ citeste_stire.php?titlu=$1&id=$2
- Daca si asa da eroare, nu am idee. Poate stie altcineva mai bine.
claUdiu
Mesaje:313
Da si acuma da erroare dar am rezolvato asa:
RewriteRule ^citeste-(.*).html /citeste_stire.php?url=$1
Acuma mai am o problema.
La mine pe site se pot da si commentari iar cand cineva il posteza se inregistreaza pagina de pe care so postat in baza de date, dar cand cineva scrie commentari nu il arata.
Eu akm am pagina asa: " http:// www .site.do/citeste-Stirea-Zilei.html " daca dau commentari de pe pagina asta nu mil arata iar daca fk urlu asa:
" http:// www .site.do/citeste_stire.php?url=Stirea-Zilei " mi-l arata. cum as putea sa-mi arate commentari cand e dat de pe o adresa transformata cu mod rewrite? Ms mult pentru ajutor - klaus;)
RewriteRule ^citeste-(.*).html /citeste_stire.php?url=$1
Acuma mai am o problema.
La mine pe site se pot da si commentari iar cand cineva il posteza se inregistreaza pagina de pe care so postat in baza de date, dar cand cineva scrie commentari nu il arata.
Eu akm am pagina asa: " http:// www .site.do/citeste-Stirea-Zilei.html " daca dau commentari de pe pagina asta nu mil arata iar daca fk urlu asa:
" http:// www .site.do/citeste_stire.php?url=Stirea-Zilei " mi-l arata. cum as putea sa-mi arate commentari cand e dat de pe o adresa transformata cu mod rewrite? Ms mult pentru ajutor - klaus;)
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?
MarPlo
Mesaje:4343
Explicatia ar fi ca din baza de date e preluat comentariul dupa valoarea lui $_GET['url'] iar in cazul adresei cu .html nu mai preia acea valoare. De ce, nu-mi dau seama. Trebuie vazut codul PHP care preia comentariile din mysql, si niste teste, de exemplu cu un echo $_GET['url']; ca sa vezi daca acel "echo" afiseaza aceeasi valoare la ambele adrese.
claUdiu
Mesaje:313
Scriptu care preia datele din baza de date e:
Si am facut testul de care zici tu. Pe pagina asta: http:// www .site.do/citeste_sitrea.php?url=Stire&id=7 imi apare ID-ul in pagina iar daca intru pe pagina http:// www .site.do/citeste-Stire_7.html nu imi apare ID-ul in pagina. Cum as putea sa fac sami apara?
Cod: Selectaţi tot
<?php
$id=$_GET['id'];
$conn = mysql_connect("localhost", "stirisite", "stirisite")
or die("Unable to connect to MySQL");
$selectdb = mysql_select_db('stirisite');
$cerereSQL = 'SELECT * FROM commentari WHERE articolul="'.$id.'"';
$rezultat = mysql_query($cerereSQL);
if(mysql_num_rows($rezultat) > 0) {
while($rand = mysql_fetch_array($rezultat)) {
echo '<div class="commentsContainer">
<div class="comments">
<a name="comentarii"></a>
<div class="oneComment">
<div class="commentName">
'. $rand['nume']. ' <span>('. $rand['data']. ' '. $rand['ora']. ')</span>
</div>
<span class="theText">'. $rand['mesaj']. '</span>
</div> </div></div>';
}
}
?>
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?
MarPlo
Mesaje:4343
Trebuie adaugat in codul rewrite si 'id' cu numarul, adica sa ai $1 pt. 'url' si $2 pt. 'id', ca sa inlocuiasca pe server adresa cu ".html" exact cum trebuie ea cu ".php?...". Pentru asta trebuie in formula 2 paranteze rodunde cu Regex, una pt. $1 si a doua pentru $2
Incearca formula rewrite asa:
RewriteRule ^citeste-([a-zA-Z -]+)_([0-9]+).html /citeste_stire.php?url=$1&id=$2
Incearca formula rewrite asa:
RewriteRule ^citeste-([a-zA-Z -]+)_([0-9]+).html /citeste_stire.php?url=$1&id=$2
claUdiu
Mesaje:313
Cu codul de la tine imi da 500 internal server error:-?? dar eu deja am in .htaccess:
Cod: Selectaţi tot
RewriteEngine on
RewriteBase /
RewriteRule ^acasa.html$ /index.php
RewriteRule ^citeste-(.*)_(.*).html /citeste_stire.php?url=$1&id=$2
RewriteRule ^categoria-(.*).html /stiri.php?categorie=$1
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?
MarPlo
Mesaje:4343
Aceasta formula (.*)_(.*) intra in conflict deoarece (.*) cuprinde toate caracterele, deci si liniuta joasa "_" si ce e dupa ea, de asta nu mai stie cand a trecut la urmatoarea paranteza si ce contine ea pt. $2, fiindca deja prima paranteza cuprinde tot sirul.
Ideea e sa fie facute 2 paranteze care sa nu intre in conflict.
Nu imi dau seama de ce da eroare 500, mai trebuie lucrat la codul Regex din paranteze. Incearca totusi si asa:
RewriteRule ^citeste-(.[^_]*)_([0-9]*).html /citeste_stire.php?url=$1&id=$2
Ideea e sa fie facute 2 paranteze care sa nu intre in conflict.
Nu imi dau seama de ce da eroare 500, mai trebuie lucrat la codul Regex din paranteze. Incearca totusi si asa:
RewriteRule ^citeste-(.[^_]*)_([0-9]*).html /citeste_stire.php?url=$1&id=$2
MarPlo
Mesaje:4343
Aceasta formula (.*)_(.*) intra in conflict deoarece (.*) cuprinde toate caracterele, deci si liniuta joasa "_" si ce e dupa ea, de asta nu mai stie cand a trecut la urmatoarea paranteza si ce contine ea pt. $2, fiindca deja prima paranteza cuprinde tot sirul.
Ideea e sa fie facute 2 paranteze care sa nu intre in conflict.
Nu imi dau seama de ce da eroare 500, mai trebuie lucrat la codul Regex din paranteze. Incearca totusi si asa:
RewriteRule ^citeste-(.[^_]*)_([0-9]*).html /citeste_stire.php?url=$1&id=$2
Ideea e sa fie facute 2 paranteze care sa nu intre in conflict.
Nu imi dau seama de ce da eroare 500, mai trebuie lucrat la codul Regex din paranteze. Incearca totusi si asa:
RewriteRule ^citeste-(.[^_]*)_([0-9]*).html /citeste_stire.php?url=$1&id=$2
claUdiu
Mesaje:313
Tot erroare da, dar am facut o modificare in loc de _ (bara jos) sa fie - (liniuta) acuma apare ID-ul din url si pe pagina transformata cu Mod Rewrite dar nu apare commentariul....
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?
Subiecte similare
- Problema curs de Engleza
Sesizari Erori si Greseli Primul mesaj
Buna.Ultimul mesaj
Am descarcat cursul curs_eurocor-engleza_incepatori_1-16.rar si cand vreau sa-l dezarhivez imi da eroarea asta:
An error occures whilw...
Buna,
Poti sa descarci cursul de engleza, nivel intermediar, de la urmatoarele linkuri:
- Lectiile 1-16... - O mica problema de animatie CSS
HTML - XHTML - CSS Primul mesaj
Noroc, MarPlo!Ultimul mesaj
1. Am vizitat pe twitter un site de animatie, in care website-ul actual se numeste CSS-Challenges,com. In respectivul website, sunt...
1. Multumesc pentru raspuns.
2. Am inteles raspunsul tau: este un mic examen oferit voluntarilor online, pentru a le afla capacitatile de rezolvare...