Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Редирект на html
Форумы портала PHP.SU » Серверное администрирование » Apache и другие веб-серверы » Редирект на html

Страниц (1): [1]
 

1. -=1100=- - 29 Апреля, 2013 - 08:18:47 - перейти к сообщению
День добрый.
Возникла такая проблема.
На сайте 30% страниц без *.html. Просто чистые алиасы.
Подскажите, кто знает, как написать редирект, что бы при отсутствии на конец html кидал на *.html
Пробовал так
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteRule !.(htm|html)$ $1.html [R=301,L]

Но не помогло.
2. DlTA - 29 Апреля, 2013 - 09:31:20 - перейти к сообщению
регулярка не правильная
надо чет типа
(.+)(?!\.(html|htm))$ $1.html
3. -=1100=- - 29 Апреля, 2013 - 10:12:03 - перейти к сообщению
Что то его зацикливает от такого редиректа.
Тут попробовал такой
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. RewriteRule (.+)[^\.html$] $1.html [L,R=301]
  3.  


А он почему-то берет адрес начиная с корня сервера /home/user/site/...
Дублиреут его раза 3 и на конец добавляем .html
(Добавление)
Yра!

Если кому надо будет, вот решение проблемы.
CODE (html):
скопировать код в буфер обмена
  1.  
  2. RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
  3. RewriteRule .* %1.html [R=301,L]
  4. RewriteRule ^(.*)/$ /$1.html [R=301,L]
  5.  

 

Powered by ExBB FM 1.0 RC1