Полный файл .htaccess
RewriteEngine on
RewriteBase /
RewriteRule ^([a-z0-9_\-]+)/([a-z0-9_\-]+)/(index\.php)?$ /main.php?type=$1&action=$2 [NC,QSA,L]
так,
www.server.com/users/new/
перенаправляет на:
www.server.com/main.php?type=users&action=new
Правило отлично работает на моей тестовой машине.
тем не мение,
на другой машине это не работает если есть файл, который начинается с того же имени:
/
|- main.php
|
+--[users]
|- new.inc.js
запрашивая
www.server.com/users/list/ --> 200 OK (main.php returns results as expected)
www.server.com/users/new/ --> 404 Not Found
Если я удалю `new.inc.js ', запрос будет перенаправлен, как ожидалось.
Какой флаг конфигурации вызывает такое поведение?
(Я уже некоторое время бьюсь головой о стену)
Обновить (Я добавил полное содержимое файла .htaccess) index.html
и index.php
индексы каталогов
(И мне это тоже не имеет смысла :()
У вас есть mod_negotiation
установлены? Если это так, он примет ваш запрос на новый и попытается выяснить, какой файл вы действительно хотели отправить. Убедитесь, что у вас нет Options MultiViews
устанавливать. Итак, в .htaccess
ставить Options -MultiViews
.