如何在 Apache 中使用 mod_rewrite 来开发 REST 应用程序

如何在 Apache 中使用 mod_rewrite 来开发 REST 应用程序

我对 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 文件的方式(顺便说一下,它是 sites-enabled 文件夹中唯一的文件):

<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。任何建议都值得感激。Ubuntu 上的 Apache 版本是 Apache 2.4.12

谢谢。

答案1

相关内容