Назад | Перейти на главную страницу

Перенаправление .htaccess работает для IP, но не для доменного имени

У меня есть следующий файл .htaccess:

RewriteEngine   on
RewriteBase     /

RewriteRule     ^(/?)dir/?$            $1dir/subdir           [L]
RewriteRule     ^(/?)subdir2/?$        $1dir/subdir/subdir2   [L]

Перенаправление работает нормально, если я ввожу IP-адрес домена, но ввод имени домена / dir вообще не перенаправляет меня, а вместо этого показывает мне содержимое каталога.

Другой вопрос: как я уже сказал, перенаправление с IP работает нормально. Однако, хотя флаг «R» не установлен, URL-адрес изменяется в поле URL-адреса. IP / dir меняется на IP / dir / subdir. Зачем?

РЕДАКТИРОВАТЬ (11:20 GMT + 1): не совсем уверен, имеет ли это какое-либо значение, но до сегодняшнего дня у сервера не было домена. Я только что купил домен и настроил все серверы имен, указывающие на сервер. Поскольку я могу получить доступ к странице, и она показывает мне содержимое папки / dir, я предполагаю, что я ничего там не испортил.

РЕДАКТИРОВАТЬ (12:51 GMT + 1): вывод apachectl -S:

apache2: Could not reliably determine the server's fully qualified domain name, using 0.0.10.188 for ServerName
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
     default server 0.0.10.188 (/etc/apache2/sites-enabled/000-default:1)
     port 80 namevhost 0.0.10.188 (/etc/apache2/sites-enabled/000-default:1)
Syntax OK

РЕДАКТИРОВАТЬ (19:26 GMT + 1): обнаружил проблему. Проблема заключалась в том, что имя моего сервера не было задано, и у меня были дубликаты в ports.conf и httpd.conf, оба из которых «слушали». Спасибо, что указали на команду "apachectl -S". Осталась одна загадочная проблема: почему URL-адрес меняется, хотя флаг R. Навсегда загадка ...

Вам нужно показать больше информации; что выводит httpd -S?

Где размещены эти правила?