当我希望我的symfony网站上线时,如何从我的网址中删除“web / app_dev.PHP /”?
http://{localhost}/my-symfony-2/web/app_dev.PHP/hello/World
因此,当我上线时,我希望能够使用此网址访问我的symfony网站,
http://my-symfony-2.com/hello/World
有任何想法吗?
解决方法:
要隐藏app.PHP,您需要:
>至少可以访问您网站的网站根目录.通常在您的Web托管空间的控制面板上,您可以找到可以上传文件的文件(或者如果您有访问凭据,则可以安装并使用免费的FTP客户端,如Filezilla).
>检查你是否在Apache中安装并启用了mod_rewrite模块,查看“apache2handler”下的PHPinfo()—> “已加载模块”目录(您应该直接通过控制面板获得这种可能性).
完成这些检查后,您必须:
注意:Symfony2已经附带了一个存储在默认Web目录中的.htaccess文件,但如果您不知道自己在做什么,最好将“IfModule mod_rewrite.c”中的指令containet替换为如下所示.
>使用本机Symfony2 .htaccess或创建一个带有.htaccess扩展名的新文件,并在这些指令中复制/粘贴以隐藏生产中的app.PHP(不在localhost上):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.PHP(/(.*)|$) %{CONTEXT_PREFIX}/$2 [R=301,L]
RewriteRule .? - [L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$app.PHP [QSA,L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule .? %{ENV:BASE}app.PHP [L]
</IfModule>
# and from the symfony's original
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
# When mod_rewrite is not available, we instruct a temporary redirect of
# the start page to the front controller explicitly so that the website
# and the generated links can still be used.
RedirectMatch 302 ^/$/app.PHP/
# RedirectTemp cannot be used instead
</IfModule>
</IfModule>
要应用修改,您需要重新启动Apache(这通常在您的Web空间的控制面板上执行).
谷歌搜索有点你可以找到大量的例子和教程,但开始学习看看这个简单的.htaccess guide with many useful infos and examples和Official URL Rewriting Guide (Apache2.4).如果你遇到一些问题更新你的帖子添加所有相关的信息,否则你可以在这里提出另一个问题.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。