尝试从网址中删除 index.php

Trying to remove index.php from urls

**我在 ubuntu-server.16.04

上托管的 apache 安全网络服务器上工作

我正在发送我在 symfony 上的第一个项目,从现在开始我做得很好。我正在尝试重写 url,所以当我想继续我的项目仪表板时,url 将是“../dashboard/”而不是(实际上是这样)“../index. php/dashboard/

但是当我尝试继续这个 url 时,服务器将我重定向到 symfony 应用程序之外并向我抛出一个基本的 apache 404 错误,而不是 symfony 处理的错误。

我认为这可以在 .htaccess 文件中编辑,但我无法找到如何让他执行所有 url 作为 symfony 路由,这是我的问题。

已尝试在 google

上找到多个代码

htaccess

DirectoryIndex index.php
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI}:: ^(/.+)/(.*)::$
    RewriteRule ^(.*) - [E=BASE:%1]
    RewriteCond %{HTTP:Authorization} .
    RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/ [R=301,L]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]
    RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ /index.php/
    </IfModule>
</IfModule>

您需要启用apache 重写。 请按照以下步骤操作: 在终端中使用以下命令:

$sudo a2enmod rewrite

在 apache 配置文件中更改 AllowOverride:

$sudo nano /etc/apache2/apache2.conf

将 AllowOverride 从 None 更改为 All in this block

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

最后,重启apache2

$sudo service apache2 restart