Засукан 301 redirect с regex

Torbalan Trolski

Well-Known Member
Признавам си сложните regex-ове не са ми сила. Трябва ми следната гимнастика

/image/cache/data/***/dir1/file-900x900.jpg -> /image/cache/catalog/***/dir1/file-800x600.jpg
/image/cache/data/***/dir2/file-900x900.jpg -> /image/cache/catalog/***/dir2/file-800x600.jpg
/image/cache/data/***/dir1/file-400x400.jpg -> /image/cache/catalog/***/dir1/file-400x300.jpg
....
/image/cache/data/***/dir3/file-400x400.jpg -> /image/cache/catalog/***/dir3/file-400x300.jpg

Т.е. идеята е от старата директория редирект към новата и няколко типа размери да се променят
 
Последно редактирано:
От: Засукан 301 redirect с regex

Това нема ли да ти свърши работа?

Код:
RewriteRule ^image/cache/data/(.*)-(.*).jpg$ http://site.com/image/cache/catalog/$1-800x600.jpg [R=301,L]

Не съм го пробвал дали ще сработи, но би трябвало.
 
От: Засукан 301 redirect с regex

Това нема ли да ти свърши работа?

Код:
RewriteRule ^image/cache/data/(.*)-(.*).jpg$ http://site.com/image/cache/catalog/$1-800x600.jpg [R=301,L]

Не съм го пробвал дали ще сработи, но би трябвало.
Мерси, аз не съм се изяснил добре. Малко по-засукано ще ми трябва, защото са няколко размера.

ще допиша в първия пост
 
От: Засукан 301 redirect с regex

Ами ако правилно съм разбрал от горният пример, би трябвало така да стане:
Код:
RewriteRule ^image/cache/data/(.*)-900x900.jpg$ http://site.com/image/cache/catalog/$1-800x600.jpg [R=301,L]
RewriteRule ^image/cache/data/(.*)-400x400.jpg$ http://site.com/image/cache/catalog/$1-400x300.jpg [R=301,L]

съответно за всеки размер, описваш новият размер и така...
 
От: Засукан 301 redirect с regex

Ами ако правилно съм разбрал от горният пример, би трябвало така да стане:
Код:
RewriteRule ^image/cache/data/(.*)-900x900.jpg$ http://site.com/image/cache/catalog/$1-800x600.jpg [R=301,L]
RewriteRule ^image/cache/data/(.*)-400x400.jpg$ http://site.com/image/cache/catalog/$1-400x300.jpg [R=301,L]

съответно за всеки размер, описваш новият размер и така...

Златен си. Имаш репче от мен.
 
От: Засукан 301 redirect с regex

До колкото разбирам правиш миграция към версия на OpenCart 2.0.х ? Според мен е добре решенията, които се дават тук да се споделят и в темата Конфигуриране, оптимизиране, функции, статии за OpenCart за да са полезни и на други в бъдеще време.

Аз лично бих го направил с mod_rewrite + php пренасочване.

Код:
RewriteCond %{REQUEST_URI} image/cache/data(/.+)-(\d+)x(\d+)\.(jpg|gif|png)$

RewriteRule ^([^?]+)$  redirect/image.php?path=%1&width=%2&height=%3&ext=%4 [L]

Не бих използвал страницата error/not_found на системата за да няма излишно зареждане, инстанциране на обекти и връзка към база данни с ненужни в случая заявки, а къстъм страничка с прихващане на различни размери и съответното им пренасочване. Добре би било да се направи проверка и дали новообразувания път до файл е реален, ако ли не да се пренасочва другаде.

Тук няма засукан regex шаблон, помня преди време бях разглеждал един около 50 реда, който може да се причисли към това определение. :wink:
 
От: Засукан 301 redirect с regex

Тук по-засуканото е, че освен смяната на пътя до изображенията, се сменят и размерите (предполагам поради смяна на тема). Код-а ти също би трябвало да сработи, но аз лично не бих го предпочел, най-вече защото представи си, че имаш страница с 10 изображения, които трябва да се load-нат и за всяко едно се изпълнява PHP скрипта... излишно покачване на процесорното време.
 
От: Засукан 301 redirect с regex

Тук по-засуканото е, че освен смяната на пътя до изображенията, се сменят и размерите (предполагам поради смяна на тема). Код-а ти също би трябвало да сработи, но аз лично не бих го предпочел, най-вече защото представи си, че имаш страница с 10 изображения, които трябва да се load-нат и за всяко едно се изпълнява PHP скрипта... излишно покачване на процесорното време.

Разбирам опасенията ти с примера, който си дал, но случаят не е такъв. Тук се прави опит за пренасочване на вече индексирани изображения от търсачките и други обхождащи паразити към новите такива, поради простата причина, че вече не съществуват. Всеки един потребител несъзнателно или не чрез своя браузър ще прави заявки, колкото са нужни на страница към пътищата на новите изображения, защото в страниците ще се генерират новите пътища. В случая няма да има никаква разлика в процесорното време. С начина, който предлагам ще има по-голям контрол върху процеса с пренасочването. Изрично съм посочил да се ползва отделна страница с 10-тина реда код с елементарни процеси в него за пренасочване.
 
От: От: Засукан 301 redirect с regex

Разбирам опасенията ти с примера, който си дал, но случаят не е такъв. Тук се прави опит за пренасочване на вече индексирани изображения от търсачките и други обхождащи паразити към новите такива, поради простата причина, че вече не съществуват. Всеки един потребител несъзнателно или не чрез своя браузър ще прави заявки, колкото са нужни на страница към пътищата на новите изображения, защото в страниците ще се генерират новите пътища. В случая няма да има никаква разлика в процесорното време. С начина, който предлагам ще има по-голям контрол върху процеса с пренасочването. Изрично съм посочил да се ползва отделна страница с 10-тина реда код с елементарни процеси в него за пренасочване.

Да имам доста индексирани снимки, които се позиционират добре и искам да ми останат линковете работещи.
И двата начина си имат предимства, но поне на първо четене този с .htaccess ми върши чудна работа.

Тук няма засукан regex шаблон, помня преди време бях разглеждал един около 50 реда, който може да се причисли към това определение. :wink:
Иначе самата мисъл за regexp-ове ми смразява мозъка. Мога да намеря за отрицателно време бъг или каков да се пипне в хиляди редове чужд код, но опра ли тях ми се отщява да работя :D
 
От: От: От: Засукан 301 redirect с regex

Иначе самата мисъл за regexp-ове ми смразява мозъка. Мога да намеря за отрицателно време бъг или каков да се пипне в хиляди редове чужд код, но опра ли тях ми се отщява да работя :D

Що бе много са си готини, понякога спестяват доста редове писане на код, логиката на който се побира в низ съдържащ в себе си комбинация от няколко символа. :) Трябва само повечко практика с тях за да ги разчиташ като обикновен текст. Преди време бях правил няколко основни урока за тях и използването им в пихипи, мога да ти ги линкна на лично понежe са в друг форум или да ги намериш в гугъл, излизат на второ място поне при мен.
 
От: От: От: От: Засукан 301 redirect с regex

Що бе много са си готини, понякога спестяват доста редове писане на код, логиката на който се побира в низ съдържащ в себе си комбинация от няколко символа. :) Трябва само повечко практика с тях за да ги разчиташ като обикновен текст. Преди време бях правил няколко основни урока за тях и използването им в пихипи, мога да ти ги линкна на лично понежe са в друг форум или да ги намериш в гугъл, излизат на второ място поне при мен.
Знам, че са удобни и ползвам, ама просто като ми потрябва обикновено си намирам нещо готово в нета и съм до там. Иначе логиката ми е ясна, но в момента който трябва да го разчета и блокирам. Има си такива неща, в които не ти е писано да станеш добър явно :)
 
От: От: От: От: Засукан 301 redirect с regex

Пусни на мен уроците. Мерси
Що бе много са си готини, понякога спестяват доста редове писане на код, логиката на който се побира в низ съдържащ в себе си комбинация от няколко символа. :) Трябва само повечко практика с тях за да ги разчиташ като обикновен текст. Преди време бях правил няколко основни урока за тях и използването им в пихипи, мога да ти ги линкна на лично понежe са в друг форум или да ги намериш в гугъл, излизат на второ място поне при мен.
 

Горе