Não tenho muita experiência com o apache, mas consegui executar com a seguinte configuração por meses na minha caixa de teste:
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>
Então, basicamente, sempre que eu criar uma nova pasta em / var / www / html, ela ficará disponível no meu navegador. Mas agora eu quero tentar fazer o seguinte:
Eu criei um novo aplicativo, com a seguinte estrutura:
/var/www/html/testrestapp/src/public/index.php
Funciona, mas tenho que navegar para:
http://localhost/testrestapp/src/public/index.php/hello/sometestname
e, em seguida, o aplicativo retorna "sometestname"
Mas eu gostaria de saber como configurar o apache para que eu possa navegar assim:
http://localhost/testrestapp/hello/sometestname
e obtenha os mesmos resultados.
Foi assim que modifiquei meu arquivo 000-default.conf (que é o único arquivo na pasta habilitada para sites, btw):
<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>
Mas não está funcionando para mim. Ainda recebendo um 404. Qualquer sugestão seria apreciada. A versão do Apache é o Apache 2.4.12 no ubuntu
Obrigado.
Tags mod-rewrite apache-2.4