【问题标题】:web/app.php is not removing in symfony2web/app.php 没有在 symfony2 中删除
【发布时间】:2013-05-28 10:21:19
【问题描述】:

我已经创建了第一个 Symfony 应用程序,但是 url 太大了

http://ip地址/repair/web/app_dev.php/home

http://ip地址/repair/web/app.php/home

我想把它设为 http://ip address/repair/home

这里是apache2的httpd.conf

NameVirtualHost 某物 ip 地址

服务器名称“修复”

DocumentRoot "/var/www/repair/web"

<Directory "/var/www/repair/web">
   DirectoryIndex app.php
    AllowOverride None
    Order allow,deny
    Allow from All
 RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
    RedirectMatch permanent ^/app\.php/(.*) /$1
</Directory>

我在 symfony 的 web 文件夹中的 .htaccess 包含

Options +FollowSymlinks

RewriteEngine On  

# Explicitly disable rewriting for front controllers
RewriteRule ^app.php - [L]
RewriteRule ^app.php - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]

我也重装了 apache2 的 mod-Rewrite

我遇到错误

在此服务器上找不到请求的 URL /repair/home。

Apache/2.2.20 (Ubuntu) 服务器在 ip 地址端口 80

【问题讨论】:

  • 我点击链接并在 .htaccess 中添加了代码,但显示相同的错误我是否需要在 app_dev.php 或 app.php 中编写任何代码才能重定向到主页

标签: php apache symfony


【解决方案1】:

如果您想通过 ip 访问站点,您需要将代码复制到“localhost”目录(例如 /var/www)

【讨论】:

【解决方案2】:

Apache 配置中的 AllowOverride None 行导致 .htaccess 文件被忽略。

如果您将其替换为 AllowOverride All,Apache 将遵循您的 .htaccess 文件中的指令。

您可以找到有关 AllowOverride here 的更多信息

【讨论】:

  • 我有你说过,即使它显示在此服务器上找不到请求的 URL /repair/home。 Apache/2.2.20 (Ubuntu) 服务器在 ip 地址端口 80
  • 我有 symfony2 重写规则 .htaccess app.php 2 堆栈溢出的链接,但即使我收到错误,请您帮忙解决问题
  • @bhari 应用设置后是否重新启动了 Apache?
【解决方案3】:

仔细检查您是否确实为 Apache 加载了 mod-rewrite。在使用 Apache 2 安装 Debian 6 时,该模块可用,但未加载。为了加载它,您可以将 mods-enabled 目录中的符号链接添加到 mods-available 目录中的模块,如下所示:

root@server:/etc/apache2/mods-enabled# ln -s ../mods-available/rewrite.load ./rewrite.load

然后您需要重新启动 Apache2 以使其重新加载其配置。在 Debian 上是 sudo service apache2 restart

【讨论】:

    猜你喜欢
    • 2012-01-15
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 2013-08-19
    • 2012-06-24
    • 1970-01-01
    相关资源
    最近更新 更多