【问题标题】:Config Symfony3 URL配置 Symfony3 URL
【发布时间】:2016-09-28 17:41:58
【问题描述】:

我使用的是 debian 服务器,我想将我的 URL ipAdresse:9999/app.php/register 更改为 isAdress/register

我已成功删除.../web/...。但不是.../app.php/...

我有一个虚拟主机:

Listen ipAdress:9999

<VirtualHost ipAdress:9999>
        DocumentRoot "/var/www/SuperSwungBall/web"
        DirectoryIndex app.php


        <Directory "/var/www/SuperSwungBall/web">
                AllowOverride All
                Allow from All
        </Directory>
</VirtualHost>

还有一个 .htaccess 在 ~/web :

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

我也尝试过使用默认的 symfony ~/web/.htaccess 。但是,它不起作用。

谢谢!

【问题讨论】:

    标签: php .htaccess symfony debian


    【解决方案1】:

    本文描述了几个示例,说明如何配置您的网络服务器以通过 app.php 使用干净的 URL 路由所有请求:http://symfony.com/doc/2.8/cookbook/configuration/web_server_configuration.html

    在您的情况下,您的虚拟主机应如下所示:

    <VirtualHost *:9999>    
        DocumentRoot /var/www/SuperSwungBall/web
        <Directory /var/www/SuperSwungBall/web>
            AllowOverride None
            Order Allow,Deny
            Allow from All
    
            <IfModule mod_rewrite.c>
                Options -MultiViews
                RewriteEngine On
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteRule ^(.*)$ app.php [QSA,L]
            </IfModule>
        </Directory>
    
        # uncomment the following lines if you install assets as symlinks
        # or run into problems when compiling LESS/Sass/CoffeScript assets
        # <Directory /var/www/project>
        #     Options FollowSymlinks
        # </Directory>
    
        <Directory /var/www/SuperSwungBall/web/bundles>
            <IfModule mod_rewrite.c>
                RewriteEngine Off
            </IfModule>
        </Directory>
        ErrorLog /var/log/apache2/project_error.log
        CustomLog /var/log/apache2/project_access.log combined
    </VirtualHost>
    

    【讨论】:

    • 它不起作用。当我想访问“ipAdress:9999/register”时,它不考虑 app.php。所以,脚本 app.php 没有被调用,它搜索不存在的文件“注册”(因为它只是一个路径)....
    • @HugoFouquet 您是否检查过您的网络服务器配置中是否已安装和/或启用了 mod_rewrite for apache?似乎它根本没有执行重写规则,因为RewriteCond %{REQUEST_FILENAME} !-f 检查请求的资源是否是文件。您可以通过执行a2enmod rewrite 来启用 mod_rewrite
    • 哦……就是这样! --' 谢谢!
    • @HugoFouquet 哈哈没问题 :D 很高兴你能成功。
    猜你喜欢
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    • 2019-01-05
    • 1970-01-01
    • 2016-10-16
    • 2017-08-26
    • 1970-01-01
    相关资源
    最近更新 更多