rewrite не пашет если зайти с IP, а не с domen.ru

vasilyev_d

Новичок
rewrite не пашет если зайти с IP, а не с domen.ru

Ситуация такова. Имеется сайт domen.ru. К нему прописан htaccess. Если заходить на сайт по адрессу domen.ru все его правила работают, а если заходить по сети на IP напрямую, то не работает.

Вот сам htaccess
PHP:
RewriteEngine  on
  RewriteRule ^(.+)/$ $1/index.php4 [L]  

RewriteCond %{REQUEST_URI}  !^/index.php4$ 
RewriteRule ^.+\.(html|php4|mp3|ra|rm)$ /index.php4 [L]  

RewriteCond %{REQUEST_URI}  !^/dtak/ 
RewriteCond %{REQUEST_URI}  .(css|gif|jpg|png|js) 
RewriteRule ^(.+)$ /dtak/$1 [L]
по сути на чем споткнулся.... в файле index.php4 идет проверка по адрессу, и если там ничего нет, то идет редирект на domen.ru/ru.html. Если в адресе есть еще чтото (например И все работает - загружается содержание сайта после обработки все тем же index.php4. Но когда захожу по машину в локальной сети http://192.168.1.3/ файл index.php4 перебрасывает на страницу 192.168.1.3/ru.html и браузер грузит именно ее (если конечно она есть) или выдает ошибку о том что чтраница не найдена.

Получается что коим образом редирект не работает ил что там еще может не работать.

PHP:
$paths = explode("/", $uri); 
array_shift($paths);  
if($paths[0]!="index.php4") {
 	$lang = array_shift($paths);
 	if($lang!="ru" && $lang!="ua") {
  		include $ROOT."/inc/page/404.php4";
 		exit;
 	}
 	define("LANG", $lang); }
 else {
   	header("Location: http://".$_SERVER["HTTP_HOST"]."/ru.html"); 	exit;
 }
 

Фанат

oncle terrible
Команда форума
так в какой момент у тебя происходит нештатная ситуация?
 

vasilyev_d

Новичок
у меня браузер ищет страницу ru.html с ее содержимым, а не передается управление на скрипт index.php4 как должно быть по правилу

RewriteCond %{REQUEST_URI} !^/index.php4$
RewriteRule ^.+.(html|php4|mp3|ra|rm)$ /index.php4 [L]

Причем так только если зайти по http://192.168.1.3/ru.html

192,168,1,3 - это адресс в локальной сети - сервака на котором стоит апач.
 

Фанат

oncle terrible
Команда форума
васильев.
В описанной тобой ситуации насчитывается не менее трех шагов.
приход запроса сервера
реакция рерайта
реакция кода в скрипте

ты можешь выяснить, на каком этапе происходит сбой?
 

vasilyev_d

Новичок
упростим....
пишу http://domen.ru/ru.html - правило...

RewriteCond %{REQUEST_URI} !^/index.php4$
RewriteRule ^.+.(html|php4|mp3|ra|rm)$ /index.php4 [L]

... срабатывает и скрипт выдает содержимое. Т.е. скрипт index.php4 подхватывается на обработку.

пишу http://192.168.1.3/ru.html - правило не срабатывает - браузер ищет и выводит именно страницу ru.html. Т.е. index.php4 не подхватывается на обработку


По ходу не работает рерайт ЕСЛИ зайти по адресу машины в локальной сети (сервака).
 

Фанат

oncle terrible
Команда форума
почему ты решил, что дело в рерайте, а не в скрипте?
 

vasilyev_d

Новичок
скрипт index.php срабатывает если ввести либо http://domen.ru/, либо http://192.168.1.3/ и перебрасывает на страницу http://domen.ru/ru.html либо на http://192.168.1.3/ru.html

только вот во втором случае браузер хочет видеть именно нтмл страницу - значит скрипт на который должен был быть редирект не был выполнен, ну естественно значит не сработал сам редирект.

Я ж говорю при вводе СРАЗУ адреса 192,168,1,3/ru.html не идет редирект на скрипт.

А при вводе domen.ru/ru.html редирект идет и все обрабатывается
 
Сверху