SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

Помощ за .htaccess и mod_rewrite

Kompota

New member
Значи имам следния проблем:

Код:
RewriteRule ^catalog\/([a-zA-Z0-9_-]+)$ catalog\.html\?ID=$1

Целта е да се получи:
Код:
/catalog/24

На localhost си работи перфектно, обаче като го кача на хостинга се получава следния проблем - стойността на ID променливата се губи, т.е. нещо с RewriteRule не е както трябва (иначе със стандартния URL catalog.html?ID=24 си е ОК).

А примерно това (чист URL без request стринг):
Код:
RewriteRule ^([a-zA-Z0-9_-]+)/$ /$1.html
си работи перфектно и на localhost и на хостинга

За първи път се сблъсквам с такава ситуация - една и съща rewrite- клауза да работи на localhost, a на хоста - не.
 
Re: Помощ за .htaccess и mod_rewrite

пробвай да обърнеш слаша

riteRule ^catalog\/([a-zA-Z0-9_-]+)$ catalog/.html/?ID=$1
 
Re: Помощ за .htaccess и mod_rewrite

Сега пък разбрах следното:

Самото добавяне на празен!!! .htaccess в document root-a по подразбиране:
1) включва Rewrite engine on (и после не приема оff, не мога да го override-на)
2) предполагам оттук тръгва злината: добавя си по своя инициатива default правило, същото като моето
Код:
RewriteRule ^([a-zA-Z0-9_-]+)/$ /$1.html
- как разбрах ли - ами изтрих си моето и rewrite-a продължи да си работи: примерно contact.html си бачка като /contact/.
Явно се получава, че това зададено от хоста default правило ми override-ва "частните" случаи от вида:
Код:
RewriteRule ^catalog\/([a-zA-Z0-9_-]+)$ catalog\.html\?ID=$1
А аз от моя страна няма как да го override-на това явно

Сисадминът е проявил творческа самодейност, обаче аз не мога да разбера какво става и не е редно да загубя 2 ч време в опити докато зацепя къде е проблема, то не че знам как да го реша де.
 
Re: Помощ за .htaccess и mod_rewrite

Аз пък не ти схващам логиката на това, което искаш да постигнеш!
До колкото разбирам искаш като отвориш в браузера
/catalog/24
да ти показва всъщност
catalog.html?ID=24

Но не разбирам каква ти е идеята php файловете ти да са с разширение .html ?
Или имаш още един mod_rewrite от html към php?
 
Re: Помощ за .htaccess и mod_rewrite

Аз бих тествал така:
Код:
RewriteRule ^catalog\/([0-9]+)$ /catalog.php?ID=$1
Както Марто е отбелязал, вместо пхп си ползвал хтмл. Освен това, ИД е само число, затова сложих само 0-9. УРЛ към което се редиректва няма нужда да се ескейпват върпосителните и другите сивмоли, защото не е регексп. Слагам / преди каталога, защото на някои хостинги не бачка без него.
 
Re: Помощ за .htaccess и mod_rewrite

Аз пък не ти схващам логиката на това, което искаш да постигнеш!
До колкото разбирам искаш като отвориш в браузера
/catalog/24
да ти показва всъщност
catalog.html?ID=24

Но не разбирам каква ти е идеята php файловете ти да са с разширение .html ?
Или имаш още един mod_rewrite от html към php?

За тази цел не ползвам mod_rewrite, ами си добавям php handler за html и си парсвам html-a.
 

Горе