Symfony htaccess隐藏app.php

时间:2014-04-30 13:00:50

标签: .htaccess symfony mod-rewrite

以下.htaccess能够允许我的symfony项目域按照预期在URL中提供app.php。唯一的问题是它打破了所有其他(非symfony相关)URL并导致内部服务器错误。

现在,从服务器删除.htaccess文件后,我的所有域都可以使用,但必须使用URL中的app.php访问绑定到symfony的项目吗?

是否可以修改以下.htaccess以重写symfony网址,以便在网址中不需要app.php,同时仍允许成功访问与symfony无关的所有其他网址?< / p>

不确定是否需要,但假设与symfony绑定的域名为www.apples.com

提前致谢!

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    # Explicitly disable rewriting for front controllers
    RewriteRule ^app.php - [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    # Change below before deploying to production
    RewriteRule ^(.*)$ /app.php [QSA,L]
</IfModule>

修改 我也尝试了以下内容:

    <IfModule mod_rewrite.c>
        Options +FollowSymlinks
        RewriteEngine On

        # Explicitly disable rewriting for front controllers
        RewriteRule ^app.php - [L]

        RewriteCond %{REQUEST_FILENAME} !-f 
        RewriteCond %{REQUEST_FILENAME} !-d    

        # Change below before deploying to production
        RewriteRule ^(.*)$ app.php [QSA,L]
        DirectoryIndex index.php
</IfModule>

2 个答案:

答案 0 :(得分:1)

之后
RewriteCond %{REQUEST_FILENAME} !-f

添加

RewriteCond %{REQUEST_FILENAME} !-d

并将 DirectoryIndex 设置为 index.php

答案 1 :(得分:0)

这个游戏有点晚了,但我发现了一个Apache指令可以节省大量时间并使你的htaccess更清洁。唯一需要注意的是你必须拥有Apache 2.2.16+。要使除有效文件(图像等)之外的所有URL都使用app.php作为前端控制器,请使用FallbackResource指令。

<Directory "/web/symfony-project">
    FallbackResource /app.php
</Directory>