Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Переадресация в .htaccess

00 голосов
2
Добрый день.
Не могу понять почему не работает переадресация сайта с www на без www. Вообще,  у меня много разных переадресаций на сайте, и ни одна из них, не работает. Раньше сайт был на обычном хостинге и  все переадресации я записывал в конец файла .htaccess, то есть вне <IfModule mod_rewrite.c> </IfModule> и всё отлично работало. Сейчас сайт переехал на VPS и старый файл .htaccess стал выдавать ошибку (в логах апача), тогда я поместил все редиректы в <IfModule mod_rewrite.c> </IfModule> и ошибки исчезли. Но редиректы не работают. Все остальные настройки файла .htaccess  (которые прописаны по умолчанию битрикcом) отлично работают.

Мой файл .htacсess (для краткости оставил только строки редиректа сайта с www на без www)
Код
 php_value mbstring.func_overload 2 
#php_value mbstring.internal_encoding UTF-8

Options -Indexes 
ErrorDocument 404 /404.php

<IfModule mod_php5.c>
  php_flag allow_call_time_pass_reference 1
  php_flag session.use_trans_sid off

  #php_value display_errors 1
</IfModule>

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On
 
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
  RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}, L]  
  
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.tm2008\.ru$ [NC]
RewriteRule ^(.*)$ http://tm2008.ru/$1 [R=301,L] 
</IfModule>

<IfModule mod_dir.c>
  DirectoryIndex index.php index.html
  
</IfModule>

<IfModule mod_expires.c>
  ExpiresActive on
  ExpiresByType image/jpeg "access plus 3 day"
  ExpiresByType image/gif "access plus 3 day"
</IfModule>

<IfModule mod_alias.c>

</IfModule>
спросил 12 Апр, 14 от NextGen (620 баллов)

2 Ответы

00 голосов
Попробуйте поместить ваши правила выше основного битриксовсого:



Код
php_value mbstring.func_overload 2 
#php_value mbstring.internal_encoding UTF-8

Options -Indexes 
ErrorDocument 404 /404.php

<IfModule mod_php5.c>
  php_flag allow_call_time_pass_reference 1
  php_flag session.use_trans_sid off

  #php_value display_errors 1
</IfModule>

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On

RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.tm2008\.ru$ [NC]
RewriteRule ^(.*)$ http://tm2008.ru/$1 [R=301,L] 

 
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
  RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}, L]  
  
</IfModule>

<IfModule mod_dir.c>
  DirectoryIndex index.php index.html
  
</IfModule>

<IfModule mod_expires.c>
  ExpiresActive on
  ExpiresByType image/jpeg "access plus 3 day"
  ExpiresByType image/gif "access plus 3 day"
</IfModule>

<IfModule mod_alias.c>

</IfModule>
ответил 09 Ноя, 14 от Apostolq (340 баллов)
00 голосов
Михаил Сидоров, уже пробовал..
ответил 07 Март, 15 от NextGen (620 баллов)

Похожие вопросы

0 голосов
1 ответ
спросил 03 Июнь, 13 от NextGen (620 баллов)
0 голосов
1 ответ
спросил 03 Март, 14 от WelMax (430 баллов)
0 голосов
3 ответов
спросил 26 Фев, 14 от 1232131 (100 баллов)
0 голосов
1 ответ
0 голосов
7 ответов
спросил 16 Авг, 13 от Ris (280 баллов)