Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache Symfony2:mod_rewrite/htaccess以摆脱;web/app.php“。。。奇怪的行为_Apache_.htaccess_Mod Rewrite_Symfony - Fatal编程技术网

Apache Symfony2:mod_rewrite/htaccess以摆脱;web/app.php“。。。奇怪的行为

Apache Symfony2:mod_rewrite/htaccess以摆脱;web/app.php“。。。奇怪的行为,apache,.htaccess,mod-rewrite,symfony,Apache,.htaccess,Mod Rewrite,Symfony,我想去掉symfony2安装URL中的“web/app.php”+“web/app_dev.php”。我知道,虚拟主机是最好的方式,但您并不总是拥有自己的主机。所以我在项目文件夹的htaccess中尝试了mod_rewrite(http://localhost/my-sf2-project/.htaccess) ... 如何做到这一点,这里有很多解释。幸运的是,重写过程正在使用此htaccess执行一些操作: <IfModule mod_rewrite.c> Options

我想去掉symfony2安装URL中的“web/app.php”+“web/app_dev.php”。我知道,虚拟主机是最好的方式,但您并不总是拥有自己的主机。所以我在项目文件夹的htaccess中尝试了mod_rewrite(http://localhost/my-sf2-project/.htaccess) ... 如何做到这一点,这里有很多解释。幸运的是,重写过程正在使用此htaccess执行一些操作:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /my-sf2-project/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ web/app_dev.php [QSA,L]
</IfModule>

选项+FollowSymLinks
重新启动发动机
重写库/my-sf2-project/
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$web/app_dev.php[QSA,L]
这意味着,当我试图请求
http://localhost/my-sf2-project/page/1
,服务器应重定向到
http://localhost/my-sf2-project/web/app_dev.php/page/1
。我的重写日志正在确认它:

使用/my-sf2-project/web/app_dev.php/page/1进行内部重定向 [内部重定向]

但是现在奇怪的事情发生了。。。symfony2开发环境表示:

找不到“GET/my-sf2-project/page/1”的路由

这意味着请求以某种方式被重定向到

  • http://localhost/my-sf2-project/web/app_dev.php/my-sf2-project/page/1
而不是

  • http://localhost/my-sf2-project/web/app_dev.php/page/1

这是怎么发生的?apache配置中是否存在某些设置或我的mod rewrite中是否存在错误,可以解释这种奇怪的行为?

您确定不希望将其重写为
/my-sf2-project/web/app_dev.php
,而不是
/my-sf2-project/web/app_dev.php/page/1
(这看起来不应该发生)?但我为什么要将其重写为
/my-sf2-project/web/app_dev.php
?我也想转换路由,就像在localhost/my-sf2-project/page/1中一样。。。或者我只是不了解这里的内部工作原理(