.htaccess url-та

vinsbg

Registered
Как ще стане това
Код:
http://mywebsite.com/page.php?page_id=Idofthepage&id=idofthearticle
http://mywebsite.com/page.php?currentpage=currentid
http://mywebsite.com/page.php?page_id=hereId
така
Код:
http://mywebsite.com/page/Idofthepage/idofthearticle
http://mywebsite.com/page/currentid
http://mywebsite.com/page/hereid

Опитах нещо от сорта на това, но нищо не става..
Код:
RewriteRule ^/([a-zA-Z0-9]+)/$ index.php?cuurentid=$1
RewriteRule ^page/([a-zA-Z]+)/([0-9]+)/$ page.php?page_id=$1&id=$2
 
http://www.generateit.net/mod-rewrite/index.php: това е един доста полезен инструмент, ето какво сътвори:

Код:
RewriteRule ^page/([^/]*)$ /page.php?page_id=Idofthepage&id=$1 [L]
RewriteRule ^page/([^/]*)$ /page.php?currentpage=$1 [L]
RewriteRule ^page/([^/]*)$ /page.php?page_id=$1 [L]
 
anonimen каза:
http://www.generateit.net/mod-rewrite/index.php: това е един доста полезен инструмент, ето какво сътвори:

Код:
RewriteRule ^page/([^/]*)$ /page.php?page_id=Idofthepage&id=$1 [L]
RewriteRule ^page/([^/]*)$ /page.php?currentpage=$1 [L]
RewriteRule ^page/([^/]*)$ /page.php?page_id=$1 [L]

Благодаря. Знам го този генератор и го пробвах.. Както и още страшно много.. Какво ли не правих, каквото и да пробвам нищо не става. И на локалния и на платения хост. Никаква промяна.
mod_rewrite е пуснат на 100%

За пример това
Код:
http://localhost/index.php?currentpage=1
го обръща на това и не работи... всичко си е по старо му.
Код:
RewriteRule ^([^/]*)\.html$ /index.php?currentpage=$1 [L]
 
Ако се вгледаш внимателно...
vinsbg каза:
го обръща на това и не работи... всичко си е по старо му.

RewriteRule ^([^/]*)\.html$ /index.php?currentpage=$1 [L]
Тоест си му дал настройката "suffix" да е '.html' (всъщност тя е по подразбиране). Махни червената част и пробвай пак :idea:
Едит: сега се усетих, че това не е page.php?id=sth, а index.php?id=sth
 
Може да се пробваш пак да обясниш какво искаш да се получи, понеже /page/нещо-си не може да отговаря на 3 условия, ккато си го дал в примера :idea:
 
Replace каза:
Може да се пробваш пак да обясниш какво искаш да се получи, понеже /page/нещо-си не може да отговаря на 3 условия, ккато си го дал в примера :idea:
А аз сега осъзнах какво всъщност съм показал... :D:D:D

Да не би да има предвид пренасочване, тоест като се отвори ?id=neshtosi url-то да се смени на /neshtosi? Примерно потребителя въвежда (по-скоро цъка линк)
http://mywebsite.com/page.php?page_id=Idofthepage&id=idofthearticle
и за да не му е грозно се пренасочва към
http://mywebsite.com/page/idofthearticle
Тогава вместо [L] ще стане [R=301] (не помня с малка или главна буква беше)
 
anonimen каза:
Replace каза:
Може да се пробваш пак да обясниш какво искаш да се получи, понеже /page/нещо-си не може да отговаря на 3 условия, ккато си го дал в примера :idea:
А аз сега осъзнах какво всъщност съм показал... :D:D:D

Да не би да има предвид пренасочване, тоест като се отвори ?id=neshtosi url-то да се смени на /neshtosi? Примерно потребителя въвежда (по-скоро цъка линк)
http://mywebsite.com/page.php?page_id=Idofthepage&id=idofthearticle
и за да не му е грозно се пренасочва към
http://mywebsite.com/page/idofthearticle
Тогава вместо [L] ще стане [R=301] (не помня с малка или главна буква беше)
Точно това искам. Явно не се разбира от първия пост. Но и с [R=301] пак е същото..

@Replace, така е. Моя грешка и сега ще я коригирам.

Целта е от
Код:
http://site.com/page.php?category=1&id=1
да стане просто
Код:
http://site.com/page/categoryID/ID
Цял ден се мъча и каквото и да пробвам все не става..
 
Може да пробваш тогава нещо такова
HTML:
RewriteRule ^page/([0-9]+)(/([0-9]+))? page.php?categoryID=$1&ID=$3 [L,QSA]
 
Все същото си стои УРЛ-то..
А трябва ли да променям нещо по <a href="..."> ?
 
Replace каза:
Разбира се, няма да се променят автоматично :)
А някаква идея как ще стане на това?
Код:
RewriteRule ^page/([0-9]+)(/([0-9]+))? page.php?categoryID=$1&ID=$3 [L,QSA]
пробвах така, но явно не става...
Код:
<a href="/page/'.$categoryid.'&id='.$line[0].'">
Също и това сменя урл-то, както трябва, но чупи всичко.. нищо не изкарва, а и цсс-а го няма
Код:
<a href="page/'.$categoryid.'/'.$line[0].'">
 
Сложи това преди правилото в .htaccess файла
HTML:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
 
Код:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^page/([0-9]+)(/([0-9]+))? page.php?categoryid=$1&ID=$3 [L,QSA]
и това на href-a
Код:
<a href="page/'.$categoryid.'/'.$line[0].'">
След, като добавих двата RewriteCond пак си остана същото.. променя URL-то, но няма цсс и снимките и тях ги няма..
Ок, цсс-а го оправих.. , но снимките ги няма.. показва ги счупени.
 
Какво имаш предвид под "показват се, но са счупени". Те картинките или се показват, или не. Да са счупени означава (поне за мен) съвсем друго.
Но да приемем, че просто пътищата им не са правилни и за това не се зареждат, то имаш най-малко два варианта:
1) ползвай абсолютните им пътища
2) добави си <base/> в хтмл-а
 
Replace каза:
1) ползвай абсолютните им пътища
Това реши проблема със снимките и вече се показват :?:

Излезе обаче друг проблем. След зареждането УРЛ-то става
http://site/page/1

което отговаря на - /page.php?categoryid=$1
И там вече имам бутон 'следващ', който зарежда
/page.php?categoryid=1?id=5
Проблема обаче е когато натисна 'следващ'. Вместо да получа
http://site/page/1/5 , аз получавам http://site/page/1/1 и на всяко натискане си добавя по едно /1/ ...
Това ми е бутона за 'следващ'
Код:
<a href="'.$categoryid.'/'.$line[0].'" >Следваща</a>
а тук взимам категорията
Код:
<a href="page/'. $res['categoryid'] .'">
И .htaccess-a, който е в момента
Код:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


RewriteRule ^page/([0-9]+)(/([0-9]+))? page.php?categoryid=$1&line[0]=$3 [L,QSA]
RewriteRule ^page/([0-9]+)(/([0-9]+))? page.php?categoryid=$1 [L,QSA]

Малко объркано стана.. извинявам се за което, ако има нещо неясно ще го обясня пак. Някакви идеи?
 
Не знам защо продължаваш да редактираш htaccess-а, след като той би трябвало да си работи.
Погледни си линковете, как се генерират (не кода, а как се принтват в HTML-а). Сложи просто наклонена преди линка, или пак си ползвай абсолютните пътища.
 
Replace каза:
Не знам защо продължаваш да редактираш htaccess-а, след като той би трябвало да си работи.
Погледни си линковете, как се генерират (не кода, а как се принтват в HTML-а). Сложи просто наклонена преди линка, или пак си ползвай абсолютните пътища.

В HTML се принтват, както се очаква. Това, когато избера съответната категория
<a href="http://localhost/pic/1"
След това, когато избера следващата снимка си излиза, пак нормално
<a href="http://localhost/pic/1/2"
И при следващо натискане на 'следващо' само презарежда страницата без да сменя снимката и id-to.

Останалото го докарах да работи, но сега това пък не иска..
 
vinsbg каза:
И при следващо натискане на 'следващо' само презарежда страницата без да сменя снимката и id-to.
и преди да натиснеш, какъв линк си генерирал в HTML-a? Също, след натискане - на какъв URL адрес те пренасочва, че така нищо не ти се сменя?
 
Replace каза:
vinsbg каза:
И при следващо натискане на 'следващо' само презарежда страницата без да сменя снимката и id-to.
и преди да натиснеш, какъв линк си генерирал в HTML-a? Също, след натискане - на какъв URL адрес те пренасочва, че така нищо не ти се сменя?

Когато натисна на съответната категория линка ми е
http://localhost/pic/11
и заредена снимка с id=19, но не се вижда в url-to.
Когато натисна 'следващо' линка се става
http://localhost/pic/11/20
и би трябвало да се вижда снимката с id=20, но не е тя. При всяко следващо натискане на бутона само презарежда страницата без нищо да се сменя. Нито снимката, нито id-то..
Когато в УРЛ-то е /pic/11 , в HTML-a е
<a href="http://localhost/pic/11/20"
, а снимката, която се вижда е /19/, а не /20/.. Това нямам представа, как се получава...
Нещо го омазах стабилно и не разбрах как и кое :)
 
Има ли някакво демо това нещо, защото взе да ми става много сложно да те разбирам :)
 

Back
Горе