редирект 301 с .(html|php) на ссылку без .(html|php)

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

Post Reply
alfalyxx
New Member
New Member
Posts: 2
Joined: Mon Nov 24, 2014 9:41 am

редирект 301 с .(html|php) на ссылку без .(html|php)

Post by alfalyxx »

Приветствую!

Настроил несколько редиректов, но не получается сделать редирект вида:

Code: Select all

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+).(html|htm)$
RewriteRule ^(.+).(html|htm)$ /$1 [R=301,L]
чтобы он еще и .php понимал, если включаю в шаблон php, то обычные страницы начинают перередирекчиваться на ?page=?page=?page= несколько раз.

сейчас в .htaccess вот что:

Code: Select all

Options +FollowSymLinks

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^frost-invest\.ru$ [NC]
RewriteRule ^(.*)$ http://www.frost-invest.ru/$1 [R=301,L]

RewriteBase /

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

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/
RewriteRule ^index\.(php|html|htm)$ http://www.frost-invest.ru [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+).(html|htm)$
RewriteRule ^(.+).(html|htm)$ /$1 [R=301,L]

RewriteRule ^kommercheskaya-nedvizhimost$ http://www.frost-invest.ru/arenda-ofisov [R=301,L]
RewriteRule ^nedvizhimost/uslugi$ http://www.frost-invest.ru/uslugi [R=301,L]
RewriteRule ^nedvizhimost/kommercheskaya-nedvizhimost/nezhiloe-pomeschenie-na-ul-krasnaya-i-soni-krivoj$ http://www.frost-invest.ru/arenda-pomeshcheniy [R=301,L]

# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
</IfModule>
Не пойму где происходит зацикливание
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: редирект 301 с .(html|php) на ссылку без .(html|php)

Post by guro »

alfalyxx wrote:Не пойму где происходит зацикливание
Вот здесь

Code: Select all

RewriteRule ^(.+)$ index.php?page=$1 [QSA]
Делая редирект с адреса c .php на адрес без .php вы убиваете этот самый вызов. Т.е. вы запускаете проверку правил htaccess по новой и так до бесконечности.
Проясните смысл задачи? Я имею ввиду, зачем делать такой редирект?

PS
Смысл в таком редиректе я вижу только в том случае, если поисковики проиндексировали страницы с такими адресами. Если этого не произошло, то ни один поисковик никогда не узнает о существовании этих страниц (я имею ввиду с .php)

PPS
Вот такое правило должно работать

Code: Select all

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php$
RewriteCond %{REQUEST_URI} ^(.+).(html|htm/|php)$
RewriteRule ^(.+).(html|htm|php)$ /$1 [R=301,L]
alfalyxx
New Member
New Member
Posts: 2
Joined: Mon Nov 24, 2014 9:41 am

Re: редирект 301 с .(html|php) на ссылку без .(html|php)

Post by alfalyxx »

Да, спасибо большое.
Нужно это по просьбе СЕО-шников, а для чего я не вдавался :)
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: редирект 301 с .(html|php) на ссылку без .(html|php)

Post by guro »

alfalyxx wrote:Нужно это по просьбе СЕО-шников
Ясно. Знаю я таких "сеошников". Задра....ются по всякой фигне, лишь бы делать вид что работают.
Post Reply

Return to “Russian - русский”