.htaccess Symfony htaccess hiding app.php

.htaccess Symfony htaccess hiding app.php,.htaccess,symfony,mod-rewrite,.htaccess,Symfony,Mod Rewrite,以下.htaccess允许我的symfony项目域按照预期在URL中不包含app.php的情况下提供服务。唯一的问题是,它正在破坏所有其他(非symfony相关)URL,并导致内部服务器错误 现在,从服务器上删除.htaccess文件后,我的所有域都可以工作,但绑定到symfony的项目必须使用URL中的app.php进行访问 是否可以修改下面的.htaccess以重写symfony url,使其不需要在url中使用app.php,同时仍允许成功访问所有其他未绑定到symfony的url 不确定

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

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

是否可以修改下面的
.htaccess
以重写symfony url,使其不需要在url中使用
app.php
,同时仍允许成功访问所有其他未绑定到symfony的url

不确定是否需要,但假设绑定到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>

选项+FollowSymlinks
重新启动发动机
#显式禁用前控制器的重写
重写规则^app.php-[L]
重写cond%{REQUEST_FILENAME}-F
#在部署到生产环境之前进行以下更改
重写规则^(.*)$/app.php[QSA,L]
编辑 我还尝试了以下方法:

    <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>

选项+FollowSymlinks
重新启动发动机
#显式禁用前控制器的重写
重写规则^app.php-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
#在部署到生产环境之前进行以下更改
重写规则^(.*)$app.php[QSA,L]
DirectoryIndex.php
紧接着

RewriteCond %{REQUEST_FILENAME} !-f


并将DirectoryIndex设置为index.php

这个游戏进行得有点晚,但我刚刚发现了一个Apache指令,它节省了很多时间,使您的htaccess更干净。唯一需要注意的是,您必须拥有Apache2.2.16+。要拥有除有效文件(图像等)之外的所有URL,请使用app.php作为前端控制器,并使用该指令

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

FallbackResource/app.php

我感谢您的帮助,但很抱歉,我说得太快了,应用这些更改后,URL中仍然需要
app.php
。哦!将[或]添加到行检查文件。如果没有请求的文件或目录,它应该重写为app.php。对不起,我不知道你的意思,你能给我举个例子吗?我用“RewriteCond%{REQUEST_FILENAME}!-f[或]”编辑了我的答案,谢谢你的回复。它似乎适用于URL:)但是,在更改为
htaccess
之后,css/images/或JS似乎都没有正确链接。你知道为什么会这样吗?我试图清除缓存。我看不出你的htaccess文件有问题,你的其他url也被url重写了吗?谢谢你的回复。第一个
.htaccess
的问题是它会破坏所有与symfony无关的URL。第二个
.htaccess
的问题是,除了
app.php
之外,所有域都可以工作,必须包含在绑定到symfony项目的域的URL中,因此我回到了开始的位置,这相当于将
.htaccess
全部删除。其他URL是基本的非symfony(
index.php
)URL。
<Directory "/web/symfony-project">
    FallbackResource /app.php
</Directory>