У меня есть проблема, когда все URL-адреса, такие как context/path/file/anything/that/follows
, становятся context/path/file.php/anything/that/follows
или context/path/file.xml/anything/that/follows
.
. У меня есть следующее правило перезаписи:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^service/(.*)$ service.php?xyz=1 [L,QSA]
, которое должно сопоставлять любой URL-адресначиная с service/...
до service.php
.Теперь проблема в том, что если файл XML с именем service.xml
находится в той же папке, что и .htaccess
, URL-адреса сопоставляются этому файлу.Если файл PHP существует, они идут в файл PHP.Файл XML имеет приоритет, т. Е. Если в каталоге есть и файл XML, и файл PHP с именем service.*
, файл XML выбирается.
У меня есть PHP 5.3, Apache 2.x,на Mac OS X 10.7 (Lion).Эта проблема ранее не возникала, когда у меня была OS X 10.6, поэтому должны быть некоторые изменения в конфигурациях, предоставленных Apple.Я просто не могу понять, что.
Есть ли способ, которым я мог бы отключить эту functoinality ?
Или я совершенно не в курсе, и что-то не так глупо?
Кстати, это не относится к mod_rewrite, поскольку его включение или отключение или удаление правила перезаписи из .htaccess
изменяет что-либо.URL service/my/parameter
по-прежнему указывает на service.xml/my/parameter
, даже если mod_rewrite отключен.
На данный момент я только что извлек строку запроса из URL-адреса и проанализировал ее вручную в файле PHP.Но я знаю, что это неправильный способ сделать это.