当我将我的网络应用程序(Symfony2)投入 生产环境 时,服务器不会重写(通常会)URL,我不知道为什么 . 我通常使用根目录和web文件夹中的.htaccess文件 .
root中的.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ web/$1 [QSA,L]
.htaccess in / web:
RewriteEngine On RewriteCond%!-f RewriteRule ^( . *)$ web / $ 1 [QSA,L]
服务器生成以下错误:
内部服务器错误
服务器遇到内部错误或配置错误,无法完成您的请求 .
请通过webmaster@subdomaine_goes_here.domaine_goes_here.com与服务器管理员联系,告知他们此错误发生的时间以及您在此错误发生之前执行的操作 .
服务器错误日志中可能提供了有关此错误的更多信息 .
此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误 .
2 回答
你不需要root中的.htaccess,你的web目录中需要.htaccess,并且域应该设置为指向web目录 . 当然它可以定制,但它是最好的解决方案(浏览器无法访问php文件) . .htaccess应该将web / app.php指向 生产环境
整个服务器配置部分可在以下位置找到:http://symfony.com/doc/current/cookbook/configuration/web_server_configuration.html
通过在项目文件夹中放入两个.htaccess文件来成功解决问题(记住:我正在使用子域):
in root /:RewriteEngine On RewriteCond%!-f RewriteRule ^( . *)$ web / $ 1 [QSA,L]
在/ web文件夹中:我保留原始的.htaccess文件附带symfony 2.7