Symfony2 – 如何从我的网址中删除“web / app_dev.php /”?

当我希望我的symfony网站上线时,如何从我的网址中删除“web / app_dev.PHP /”?

这是开发期间的认URL,

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 examplesOfficial URL Rewriting Guide (Apache2.4).如果你遇到一些问题更新你的帖子添加所有相关的信息,否则你可以在这里提出另一个问题.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...