Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Убрать WWW с ссылке всегда
 
 автор: p.pavluxa   (11.01.2013 в 14:31)   письмо автору
 
 

Здравствуйте. Нужно сделать так что бы когда человек попадает на www.мойсайт.com/?данные запроса у меня в переменной $_SERVER['HTTP_HOST'] был мойсайт.com , т.е без www. Сделать при помощи htaccess

  Ответить  
 
 автор: Sfinks   (11.01.2013 в 14:58)   письмо автору
 
   для: p.pavluxa   (11.01.2013 в 14:31)
 

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

  Ответить  
 
 автор: p.pavluxa   (11.01.2013 в 15:06)   письмо автору
 
   для: Sfinks   (11.01.2013 в 14:58)
 

а как вместо site.ru переменную HTTP_HOST вставить?
ну что бы не привязывать к конкретному домену файл

  Ответить  
 
 автор: Sfinks   (11.01.2013 в 18:18)   письмо автору
 
   для: p.pavluxa   (11.01.2013 в 15:06)
 

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

  Ответить  
 
 автор: p.pavluxa   (11.01.2013 в 21:33)   письмо автору
 
   для: Sfinks   (11.01.2013 в 18:18)
 

Спасибо!

  Ответить  
 
 автор: p.pavluxa   (11.01.2013 в 22:04)   письмо автору
 
   для: p.pavluxa   (11.01.2013 в 21:33)
 

В этоге у меня код :\
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,QSA]
RewriteRule ^([a-z0-9_-]+).html$ index.php?p=$1 [L,QSA]

Когда захожу на http://www.мойсайт/page.html
Меня перенаправляет на http://мойсайт/?index.php?p=page, а нужно что бы на http://мойсайт/page.html как сделать?

  Ответить  
 
 автор: p.pavluxa   (11.01.2013 в 23:19)   письмо автору
 
   для: p.pavluxa   (11.01.2013 в 22:04)
 

UP

  Ответить  
 
 автор: Sfinks   (12.01.2013 в 08:56)   письмо автору
 
   для: p.pavluxa   (11.01.2013 в 22:04)
 

Попробуйте правила
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
 RewriteRule ^(.*)$ http://%1/$1 [R=301,QSA]
разместить последними

Или дописать L в [R=301,QSA]

Или и то и другое =)

  Ответить  
 
 автор: p.pavluxa   (12.01.2013 в 10:51)   письмо автору
 
   для: Sfinks   (12.01.2013 в 08:56)
 

результат тот же (

  Ответить  
 
 автор: p.pavluxa   (12.01.2013 в 17:30)   письмо автору
 
   для: p.pavluxa   (12.01.2013 в 10:51)
 

Какие ещё есть варианты??

  Ответить  
 
 автор: Sfinks   (12.01.2013 в 23:49)   письмо автору
 
   для: p.pavluxa   (12.01.2013 в 17:30)
 

Самым правильным будет решить это на уровне DNS.
Т.е. разделить эти два домена.
Т.е. в DNS домена удалить запись типа "A", указывающую на то что www.site.ru и site.ru -это одно и тоже.
Затем создать реальный поддомен www.site.ru.
Тем самым вы разделите эти два домена и, соответственно, файлы .htaccess.
Тогда в хтакцесе домена www укажете только 2 правила выполняющие внешний редирект на site.ru, а в хтакцесе site.ru - все остальное.

  Ответить  
 
 автор: p.pavluxa   (15.01.2013 в 00:06)   письмо автору
 
   для: Sfinks   (12.01.2013 в 23:49)
 

Хотелось бы сделать на программном уровне

  Ответить  
 
 автор: Sfinks   (16.01.2013 в 21:41)   письмо автору
 
   для: p.pavluxa   (15.01.2013 в 00:06)
 

Тогда вам придется перед каждым RewriteRule писать:
RewriteCond %{HTTP_HOST} !^www\. [NC]

Не думаю, что это лучше.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования