URLs friendly

baceto90

Registered
Здравейте. Искам да попитам как мога да направя следният линк:
Код:
http://site/view.php?trailer=143
да изглежда така:
Код:
http://site/view-име-на-трейлъра-143
Знам ,че трябва да се напише нещо в .htaccess с rewrite mod ,но не знам какво точно.
 
Вземаш името от базата данни и го пъхаш в линка:

http://site/view.php?trailer=143&name=imeto-na-klipa

След това отиваш в http://www.generateit.net/mod-rewrite/ и си генерираш .htaccess код по твой избор като в полето слагаш "http://site/view.php?trailer=143&name=imeto-na-klipa"

Това е най-лесният вариант. :)
 
Направих го всичко това, сложих кода в .htaccess обаче няма никва промяна в линковете пък и грешна не дава. От какво може да се дължи това. Да не би да ми е изключен тоя модул rewrite от някаде ? Някой знае ли как мога да проверя ?
 
Добре като използвам кода за препращане примерно ако се въведе sait.com автоматично да препраща на www.sait.com кода RewriteRule работи, но като се опитам да пренапише даден линк не става.... Да не би да трябва нещо друго да се направи или само трябва да се въведе регулярния израз ?
Код:
RewriteCond %{HTTP_HOST} ^sait\.com
RewriteRule ^(.*)$ http://www.sait.com/$1 [R=301,NC]

RewriteRule ^trailer-([^-]*)-([^-]*)$ /view.php?trailer=$1&name=$2 [L]
 
Никой ли не знае как се прави тоя мод ? Как точно действа този rewrite ?
Пиша в .htaccess
Код:
RewriteRule ^trailer-([^-]*)-([^-]*)$ /view.php?trailer=$1&name=$2 [L]
и оставам линковете както са ми били http://site/view.php?trailer=143 или и тях трябва да заменя с някав друг ?
 
hellkiller каза:
Трябва да смениш линковете.
Как точно трябва да ги сменя, защото аз както и да ги сменях ми дава object not found. Някой може ли да ми даде примерен код ?
 
ами то ти е написано как ще стане ..
като напишеш в полето :
Код:
http://site/view.php?trailer=143&name=imeto-na-klipa
и го генерираш ти изкарва отдолу :
Код:
The original URL:
http://site/view.php?trailer=143&name=imeto-na-klipa
The rewritten URL:
http://site/143/imeto-na-klipa
дава ти и опции допълнително .. да пише ли накрая .php , .html да не пише ли ..
ето ти кода :
Код:
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)$ /view.php?trailer=$1&name=$2 [L]
и вече като напишеш :
Код:
http://site/143/imeto-na-klipa
, ще ти се появи клипа ..
 
Сега пробработи, но възникна друго. Ако имам линк от вида на
Код:
http://site/trailer-142-Beowulf
Линка работи, а ако е от вида на:
Код:
http://site/trailer-142-The-Beowulf
не работи извежда not found. Ето това използвам в момента за пренаписване
Код:
RewriteRule ^trailer-([^-]*)-([^-]*)$ /view.php?trailer=$1&name=$2 [L]
Ако е от значение името на трейлъра го запълвам ако има празни места межу текста така

Код:
$linkname = str_replace(' ', '-', "$trailerR[engtitle]");
 
Оправих проблема :) Като промених малко RewriteRule
Код:
RewriteRule ^trailer-([0-9]+)-([A-Za-z0-9-]+)$ /view.php?trailer=$1&name=$2 [L]
Сега дава грешка само ако в името има знаци като
: ! . '
Как мога да ги премахна и в името да остане само букви и цифри ?
 

Back
Горе