尝试从网址中删除 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
**我在 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