Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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
Php Symfony 2:Web服务器没有';不要重写URL_Php_Apache_.htaccess_Symfony_Mod Rewrite - Fatal编程技术网

Php Symfony 2:Web服务器没有';不要重写URL

Php Symfony 2:Web服务器没有';不要重写URL,php,apache,.htaccess,symfony,mod-rewrite,Php,Apache,.htaccess,Symfony,Mod Rewrite,当我将我的web应用(Symfony2)投入生产时,服务器不会重写(通常会重写)URL,我不知道为什么。我通常使用根目录和web文件夹中的.htaccess文件 .htaccess在根目录中: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ web/$1 [QSA,L] 重新启动发动机 重写cond%{REQUEST_FILENAME}

当我将我的web应用(Symfony2)投入生产时,服务器不会重写(通常会重写)URL,我不知道为什么。我通常使用根目录和web文件夹中的.htaccess文件

.htaccess在根目录中:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ web/$1 [QSA,L]

重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$web/$1[QSA,L]

.htaccess-in/web:

重新启动发动机 重写cond%{REQUEST_FILENAME}-F 重写规则^(.*)$web/$1[QSA,L]

服务器生成以下错误:

内部服务器错误

服务器遇到内部错误或配置错误,无法完成您的请求

请通过以下地址与服务器管理员联系:webmaster@subdomaine_goes_here.domaine_goes_here.com通知他们此错误发生的时间,以及您在此错误之前执行的操作

有关此错误的详细信息,请参阅服务器错误日志


此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误。

您不需要.htaccess在root中,您需要.htaccess在web目录和域中应设置为指向web目录。当然,它可以定制,但这是最好的解决方案(php文件无法从浏览器中访问)。htaccess应该指向web/app.php进行生产


可以在以下位置找到整个服务器配置部分:

将两个.htaccess文件放入项目文件夹中,成功解决了此问题(请记住:我使用的是子域):

根/: 重新启动发动机 重写cond%{REQUEST_FILENAME}-F 重写规则^(.*)$web/$1[QSA,L]


在/web文件夹中:我保留symfony 2.7附带的原始.htaccess文件

您将使用哪个url?我使用一个您可以访问它的子域:您可以共享子域的虚拟主机设置吗。您可能需要将apache设置AllowOverride None更改为AllowOverride All当我从根目录中删除.htaccess时,服务器似乎没有索引web文件夹:禁止您没有访问/此服务器的权限。另外,,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。由于symfony中没有index.php文件,因此需要将其指向app.php,而整个配置位于我在回答中提供的链接更改您的
DocumentRoot
目录
排序,因为它指向
web
目录(例如
public\u html/web
)。将使用good.htaccess并将自动将
app.php
作为
DirectoryIndex
。我认为它无法工作,因为当我转到时,仍然会出现相同的错误(点击链接查看错误),您的域上仍然指向了错误的目录检查虚拟主机设置。如果你去,它会起作用。所以主机配置是错误的