Loading...
ytotev91 avatar ytotev91 2 Точки

Разписване на редиректи в htaccess

Здравейте,

 

Имам няколко въпроса относно разписването на ридеркти в htaccess файла.

 

1. Как се разписва редирект от горен регистър към долен?

 

2. Редиректване от слеш към без слеш - проблемът ми тук е следния:

 

Началната страница сайта е със слеш (http://www.example.com/bg/) и когато се махне слеша накрая, се радиректва към слеш. Обаче всички останали страници са интексирани без слеш (http://www.еxample.com/bg/clients) и когато се добави слеш дава грешка 404. 

 

Когато разпиша редиректа от слеш към без слеш, по този начин:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

началната страница се чупи... 

 

Имали как да напиша, че това правило важи след /bg/ в началото на URL-то?

 

Какво бихте ме посъветвали да направя в този случай?

 

Благодаря Ви!

Поздрави, 

Йордан

 

Тагове:
1
Digital Marketing & SEO 21/06/2016 15:21:27
vitorio avatar vitorio 4 Точки

Привет, 

1. Как се разписва редирект от горен регистър към долен?

Тук мога да ви помогна със следното:

RewriteEngine On
RewriteBase /

RewriteRule ^([^A]*)A(.*)$ $1a$2
RewriteRule ^([^B]*)B(.*)$ $1b$2
RewriteRule ^([^C]*)C(.*)$ $1c$2
RewriteRule ^([^D]*)D(.*)$ $1d$2
RewriteRule ^([^E]*)E(.*)$ $1e$2
RewriteRule ^([^F]*)F(.*)$ $1f$2
RewriteRule ^([^G]*)G(.*)$ $1g$2
RewriteRule ^([^H]*)H(.*)$ $1h$2
RewriteRule ^([^I]*)I(.*)$ $1i$2
RewriteRule ^([^J]*)J(.*)$ $1j$2
RewriteRule ^([^K]*)K(.*)$ $1k$2
RewriteRule ^([^L]*)L(.*)$ $1l$2
RewriteRule ^([^M]*)M(.*)$ $1m$2
RewriteRule ^([^N]*)N(.*)$ $1n$2
RewriteRule ^([^O]*)O(.*)$ $1o$2
RewriteRule ^([^P]*)P(.*)$ $1p$2
RewriteRule ^([^Q]*)Q(.*)$ $1q$2
RewriteRule ^([^R]*)R(.*)$ $1r$2
RewriteRule ^([^S]*)S(.*)$ $1s$2
RewriteRule ^([^T]*)T(.*)$ $1t$2
RewriteRule ^([^U]*)U(.*)$ $1u$2
RewriteRule ^([^V]*)V(.*)$ $1v$2
RewriteRule ^([^W]*)W(.*)$ $1w$2
RewriteRule ^([^X]*)X(.*)$ $1x$2
RewriteRule ^([^Y]*)Y(.*)$ $1y$2
RewriteRule ^([^Z]*)Z(.*)$ $1z$2

2. Редиректване от слеш към без слеш - проблемът ми тук е следния:

 

Началната страница сайта е със слеш (http://www.example.com/bg/) и когато се махне слеша накрая, се радиректва към слеш. Обаче всички останали страници са интексирани без слеш (http://www.еxample.com/bg/clients) и когато се добави слеш дава грешка 404. 

 

Когато разпиша редиректа от слеш към без слеш, по този начин:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

началната страница се чупи... 

 

Имали как да напиша, че това правило важи след /bg/ в началото на URL-то?

 

Какво бихте ме посъветвали да направя в този случай?

Бих ви посъветвал да мигрирате сайта към без /bg/ по този начин ще бъде избегнат проблема и е по правилно сайта да се намира на основната директория.

Всичко относно редиректите е строго индивидуално и ако ако горния код не може да направи редиректа, както и в случай, че искате сайта да остане на /bg/ трябва да се консултирате с програмисти, как би могъл да бъде разрешен преблема.

 

Поздрави и благодаря за въпроса.

0
ytotev91 avatar ytotev91 2 Точки

Благодаря за отговора!

 

Ето един коментар от едно форумче, относно примерния код за редирект от горен към долен регистър, който сте продложили:

 

"I would definitely NOT try the first example where you use the .htaccess file. It causes server resources to skyrocket and bog down the server. I tried using this approach, and it made my web host temporarily suspend my account until we were able to pinpoint that this was indeed the problem and I removed it."

 

При мен също се случи същото нещо, целият сайт падна за около 20-30 мин. Та, главоблъсканицата продължава по този въпрос. :)

 

Относно второто ми питане, намерих решението, което търсех и се оказа доста елементарно:

 

RewriteCond %{HTTP_HOST} !^\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/bg/$
RewriteCond %{REQUEST_URI} !^/en/$
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

 

Поздрави, 

Йордан

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.