htaccess mod Rewrite

Msecurity

Registered
Здравейте колеги
Отново имам нужда от малко хелп с този htaccess , че файла стана по голям от програмния код на сайта :D

Сайта който правя има много опции и , и пренаписвам всеки един урл адрес по отделно, за всяка променлива , която взимам... но до тук само това пренаписване вече е е 60 реда ...
Има ли някакъв по съкратен вариант, съмнявам се всички да описват всяка една променлива , която взимат от url адреса...

Ето как го правя аз - което ми се струва че е малко грешно , но за сметка на това пък работи :D

Код:
RewriteRule category/view/(.*)/brand/(.*)/discount/(.*)/page/(.*)/ category.php?view=$1&brand=$2&discount=$3&page=$4

RewriteRule category/view/(.*)/brand/(.*)/discount/(.*)/page/(.*)  category.php?view=$1&brand=$2&discount=$3&page=$4

Като отделно описвам brand,discount, page и т.н ...

Поздрави :P
 
Тея правила специално, дето си ги дал, описват един урл само, че едното с "/" накрая, а другото без. Няма да е лошо да казваш и от къде почват и къде свършват записите, защото може да се получи НЕ правилно рутиране и ти може да си поставил връзката правилно, но паяка на гугъл, може да лудне(имал съм тоя проблем).

Така, предлагам ти да правиш така:
RewriteRule ^category/view/([^/]+)/brand/([^/]+)/discount/([^/]+)/page/([^/]+)/?$ category.php?view=$1&brand=$2&discount=$3&page=$4

Като, ^ и $ казват начало и край на урл-а(регулярния израз). Вместо (.*) използвай ([^/]+), което казва Висчко ОСВЕН "/", за да не се получават бъгове.

Така, ако приемем и че страницата ти се мени, може да го автоматизираш ОЩЕ повече, и няма да се налага да описваш всяко урл-че отделно, но ще трябва да спазваш някаква конвенция. Пример: https://regex101.com/r/jW0kU4/1, смисъл , тва е доста дървено, има достатъчно генератори на htaccess, просто ти давам идея :D :?: :idea:
 
Начинът по който подхождаш към нещата е много грешен. Сега имаш 60 урл-а, утре ще имаш 6000. Така както правиш всеки урл по отделно ще си изтъркаш клавиатурата. А ако ти се наложи да променяш става мисията невъзможна. Прави се само един индекс файл в който се стартира приложението(май му викаха бутстрап), и в htaccess-a само премахваш index.php от урл-а. Има различни начини да се направи, но ето пример как се постига целта.

https://www.youtube.com/watch?v=ZgCW2x5QCXo
 
Ставаше въпрос по точно за това
Дали това няма вариант да го съкратя до 1 ред...
Това е добре... но ако е на продукт страницата опциите са 10+ ... промоции, езици, валути, категории, марки и т.н и се получават 20 реда... да описвам като малумен... :D
Код:
RewriteRule all/promotion/exchange/(.*)/ all.php?promotion&exchange=$1
RewriteRule all/promotion/exchange/(.*)  all.php?promotion&exchange=$1
RewriteRule all/promotion/lang/(.*)/ all.php?promotion&lang=$1
RewriteRule all/promotion/lang/(.*)  all.php?promotion&lang=$1
RewriteRule all/promotion/page/(.*)/ all.php?promotion&page=$1
RewriteRule all/promotion/page(.*)  all.php?promotion&page=$1
RewriteRule all/promotion/ all.php?promotion
RewriteRule all/promotion  all.php?promotion
 
Явно не вдяваш какво ти се казва. По начина който ти показах, пишеш един път малко код и после всички урл-и ще са ти в чистия вид. Същото е като въпроса ти за МВЦ-то. Защо да го направим лесно като може и да се мъчим. Хората са го измислили отдавна, ама карай да върви.
 
teroristd каза:
Явно не вдяваш какво ти се казва. По начина който ти показах, пишеш един път малко код и после всички урл-и ще са ти в чистия вид. Същото е като въпроса ти за МВЦ-то. Защо да го направим лесно като може и да се мъчим. Хората са го измислили отдавна, ама карай да върви.

Мерси схаванах идеята :)
ПП: За MVC се оправих ... след доста четене и и т.н - съм съгласен с един от колегите който се изрази така "Няма значение как е направено, ако работи като MVC , значи е MVC".

Благодаря за помоща и лек и успешен ден на всички :))))
 

Back
Горе