Php Symfony 2:Web服务器没有';不要重写URL
当我将我的web应用(Symfony2)投入生产时,服务器不会重写(通常会重写)URL,我不知道为什么。我通常使用根目录和web文件夹中的.htaccess文件 .htaccess在根目录中: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}
<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
。我认为它无法工作,因为当我转到时,仍然会出现相同的错误(点击链接查看错误),您的域上仍然指向了错误的目录检查虚拟主机设置。如果你去,它会起作用。所以主机配置是错误的