Я не очень разбираюсь в apache, но мне удалось несколько месяцев работать со следующей настройкой на моем тестовом блоке:
me@mydev:/etc/apache2/sites-enabled$ vim 000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Таким образом, каждый раз, когда я создаю новую папку в / var / www / html, она становится доступной в моем браузере. Но теперь я хочу попробовать сделать следующее:
Я создал новое приложение со следующей структурой:
/var/www/html/testrestapp/src/public/index.php
Это работает, но мне нужно перейти к:
http://localhost/testrestapp/src/public/index.php/hello/sometestname
а затем приложение возвращает sometestname
Но я хотел бы знать, как настроить apache, чтобы я мог ориентироваться так:
http://localhost/testrestapp/hello/sometestname
и получите такие же результаты.
Вот как я изменил свой файл 000-default.conf (это единственный файл в папке с поддержкой сайтов, кстати):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/var/www/html/testrestapp/">
RewriteEngine on
RewriteBase /testrestapp/
RewriteRule ^src/public/index.php/hello$ hello/ [R]
</Directory>
</VirtualHost>
Но у меня это не работает. Все еще получаю 404. Любые предложения будут оценены. Версия Apache - Apache 2.4.12 на ubuntu
Спасибо.
взгляните на директивы Alias и Directory (https://httpd.apache.org/docs/current/mod/mod_alias.html, https://httpd.apache.org/docs/current/mod/core.html#directory)