.htacces rewrite само на exact match url

Torbalan Trolski

Well-Known Member
Нещо съм зациклил, дайте акъл как да направя тази врътка в .htacces

example.com/2 и example.com/2/ да стане example.com/?post_type=2

обаче ако има още категории в пермалинка да не се изпълнява правилото
example.com/2/2... да не се пипа

И още една врътка

example.com/2/3/4.html да става example.com/1/3/4.html
а
example.com/2/3/4 да не се пипа
 
От: .htacces rewrite само на exact match url

Нещо съм зациклил, дайте акъл как да направя тази врътка в .htacces

example.com/2 и example.com/2/ да стане example.com/?post_type=2

обаче ако има още категории в пермалинка да не се изпълнява правилото
example.com/2/2... да не се пипа

И още една врътка

example.com/2/3/4.html да става example.com/1/3/4.html
а
example.com/2/3/4 да не се пипа

Ако правилно съм те разбрал, това би трябвало да сработи за първото правило...

Код:
RewriteCond   %{REQUEST_URI}    ^/2/?$
RewriteRule   ^([0-9])(/?)$ http://example.com/?post_type=$1   [R=301,L]
 
От: .htacces rewrite само на exact match url

Здравей.
По първият въпрос. Това е доста далече от 'exact match на url', но идеята е следната.
Ако параметърът е число ([0-9]+) или след него има "/" (/?) - се мачва.
Код:
RewriteRule ^([0-9]+)/?$   example.com?post_type=$1 [L]
По втората врътка .. не съм сигурен, че разбрах какво точно трябва да се случи.
Поздрави.
едит: изпревариха ме :)
 
От: .htacces rewrite само на exact match url

А относно другото правило, това смятам, че ще ти свърши работа:

Код:
RewriteRule ^2/3/4.html$ http://example.com/1/3/4/ [R=301,L]
 
От: От: .htacces rewrite само на exact match url

Ако правилно съм те разбрал, това би трябвало да сработи за първото правило...

Код:
RewriteCond   %{REQUEST_URI}    ^/2/?$
RewriteRule   ^([0-9])(/?)$ http://example.com/?post_type=$1   [R=301,L]
Уфф много съм прост бях объркал хоста и от един ас се чудя защо не бачка :D


По втората врътка .. не съм сигурен, че разбрах какво точно трябва да се случи.
Ако url завършва с определeн стринг да се изпълни правилото, ако не да си остане пермалинка.

А относно другото правило, това смятам, че ще ти свърши работа:

Код:
RewriteRule ^2/3/4.html$ http://example.com/1/3/4/ [R=301,L]
Мммм не е точно това /2/3/4 е боза (категории във ВП) трябва да хвана урл-то само когато е пост (с .html ми се вижда най лесно)
и /2/3/4.html е примерно поста а /2/3 е архив на категорията обаче пермалинка за поста трябва да стане /1/3/4.html

RewriteRule ^(*).html$ http://example.com/1/3/4/ [R=301,L]
май нещо такова ми трябва, ама човек не трябва да се занимава с това след цял работен ден :D
 
От: От: .htacces rewrite само на exact match url

Уфф много съм прост бях объркал хоста и от един ас се чудя защо не бачка :D



Ако url завършва с определeн стринг да се изпълни правилото, ако не да си остане пермалинка.

идеята да завършва на определен стринг за да е изпълни не е особено добра идея, понеже в този случаи, ако някой светъл ден имаш адрес example.com/6/6/6/4.html и познай какво ще стане :) По-добре си опиши точен адрес, освен, ако не трябва нещо по-масово да се прави.
 
От: От: .htacces rewrite само на exact match url

идеята да завършва на определен стринг за да е изпълни не е особено добра идея, понеже в този случаи, ако някой светъл ден имаш адрес example.com/6/6/6/4.html и познай какво ще стане :) По-добре си опиши точен адрес, освен, ако не трябва нещо по-масово да се прави.

Да тъпо съм го описал

RewriteRule ^(*).html$ http://example.com/1/3/4/ [P,L] май... [P,L] гошо да вижда ясно стуктурирани нещата
 
От: .htacces rewrite само на exact match url

Мхм.. разбирам, ами в такъв случай, ако правилно съм разграл, искаш всичко което завършва на .html да се насочва към определена страница... това би трябвало да е твоя вариант:

Код:
RewriteRule ^(.*).html$ http://example.com/1/3/4/ [R=301,L]
 
От: .htacces rewrite само на exact match url

Мхм.. разбирам, ами в такъв случай, ако правилно съм разграл, искаш всичко което завършва на .html да се насочва към определена страница... това би трябвало да е твоя вариант:

Код:
RewriteRule ^(.*).html$ http://example.com/1/3/4/ [R=301,L]
Не.
значи къстъм таксономията започва с /2/3
а пермалинка на поста с /1/3/пост.html/

целта е пермалинка на поста da stane /2/3/пост.html
 
От: .htacces rewrite само на exact match url

Всъщност исках да направя ето това, ама толкова съм бил затъпял, че и не можах да го обясня като хората.

идеята е
/XXX/боза/html/ да става /YYY/боза/html/
обаче
/XXX/боза да си остава /XXX/боза


RewriteCond %{REQUEST_URI} ^/XXX/(.*)/(html/?)$
RewriteRule ^XXX/(.*)/html/?$ /YYY/$1/html/ [P,L]

Благодарско на Virosss, че се мъчи да ме разбере и накрая ми каза да пия кафе и цигара. Е аз се прибрах пих едно вино и на сутринта го измъдрих.
Извод - като решите да се занимавате с regexp-ове не го правете вечер след цял ден работа :D
 
Последно редактирано:

Горе