У меня есть проект, в котором все запросы отправляются на index.php с маршрутизацией в файле .htaccess.
Это, к сожалению, не работает в XAMPP Virtualhost.
Но когда я перехожу в корневую папку и выполняю команду PHP -S 127.0.0.1:8080 или любой другой порт, система маршрутизации работает и .htaccess файл тоже работает.
Это доказывает, что с моим PHP-кодом все в порядке.
Чтобы уточнить: я могу связаться с виртуальным хостом, и он работает.
Но когда я добавляю /control, появляется сообщение «Объект не найден», потому что control.php не существует. Но это должно привести меня на страницу управления, потому что она должна отправить запрос на index.php.
Удаление расширения .php работает, поэтому /client работает, поскольку существует файл с именем client.php. Таким образом, .htaccess при этом не игнорируется.
Я также попробовал ввести что-то случайное в файл .htaccess и посмотреть, не выдаст ли это ошибку сервера, и это действительно так. Это также доказывает, что Virtualhost не игнорирует файл .htaccess.
Мой файл .htaccess:
Код: Выделить всё
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ /index.php?q=$1 [NC,L,QSA]
Код: Выделить всё
DocumentRoot "C:/xampp/htdocs/example"
ServerName example.com
ServerAlias www.example.com
AllowOverride All
С уважением,
EDIT 1
Я добавил в httpd-vhosts.conf строку DirectoryIndex index.phpи она выглядит так:
Код: Выделить всё
DirectoryIndex index.php
AllowOverride All
После некоторого тестирования я обнаружил, что правило маршрутизации для /login работает.
Мой файл index.php:
Код: Выделить всё
Подробнее здесь: [url]https://stackoverflow.com/questions/60477287/xampp-virtualhost-doesnt-route[/url]
Мобильная версия