У меня есть небольшой php, созданный с использованием тонкой структуры. Я установил его на apache, который работает на localhost:8055
. С помощью /users/get
на localhost:8055
Я могу получить результаты API без использования index.php/users/get
.
Теперь у меня также есть IIS, работающий на порту 80, и он слушает внешние запросы через Интернет. Я установил сайт на iis с правилом перезаписи обратного прокси на localhost: 8085. Я могу получить результат через Интернет через обратный прокси-сервер IIS на localhost: 8055, используя mydomain.com/index.php/users/get
но не используя mydomain.com/users/get
. Я думаю, что он не выбирает .htaccess, когда запрос переходит с iis на apache.
Вот мой файл htaccess:
RewriteEngine On
RewriteBase /office/gcm_chat/v1/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
Я бы предположил, что ваш php-скрипт анализирует PATH_INFO, который будет установлен на /users/get
когда вы просите mydomain.com/index.php/users/get
но не будет установлен при запросе mydomain.com/users/get
. Вместо этого проанализируйте URI запроса.
Также стоит подумать об изменении всех строк в вашем файле htaccess на простые FallBackResource index.php
а также переместив его в основной файл конфигурации в <Directory>
блок. Оба эти изменения можно сделать независимо.
Что-то вроде:
<Directory "c:/Path/To/office/gcm_chat/v1/">
FallBackResource index.php
</Directory>