如何在 WAMP 中设置 mod_rewrite?

如何在 WAMP 中设置 mod_rewrite?

我学习了 Symfony2,并且有: http://symfony.com/doc/current/quick_tour/the_big_picture.html

http://localhost/Symfony/web/app.php/demo/hello/Fabien

如果您使用启用了 mod_rewrite 的 Apache,您甚至可以省略 URL 中的 app.php 部分:

http://localhost/Symfony/web/demo/hello/Fabien

最后但同样重要的一点是,在生产服务器上,您应该将您的 Web 根目录指向 web/ 目录,以确保您的安装安全,并拥有更好看的 URL:

http://localhost/demo/hello/Fabien

我如何在 WAMP 服务器中实现这一点?

答案1

您要做的就是添加一个指向 symfony 应用程序的虚拟主机。您可以通过使用以下配置添加另一个虚拟主机来实现此目的:

<VirtualHost *:80>
    ServerName localhost

    # Basic stuff
    DocumentRoot "C:/path/to/symfony/web"
    DirectoryIndex app.php
    <Directory "C:/path/to/symfony/web">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>

根据您的配置,您可以在 apache/conf/extra 文件夹中找到 httpd-vhosts.conf,您可以在其中添加该部分,也可以将其添加到 httpd.conf!还要确保没有为 localhost 定义其他虚拟主机。

答案2

首先,您需要按照说明在 Xampp 中启用 mod_rewrite这里。然后您需要在应用程序的 .htaccess 中设置 mod_rewrite 规则(通常在“web”文件夹中)。删除 app.php 的规则如下:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L] 
</IfModule>

如果你想了解更多关于 URL 重写的信息,这里有一篇不错的文章教程

相关内容