【问题标题】:How to set the web root and hide app.php and app_dev.php in localhost using xampp and apache?如何使用 xampp 和 apache 设置 web 根目录并在 localhost 中隐藏 app.php 和 app_dev.php?
【发布时间】:2015-02-12 04:26:16
【问题描述】:

我在本地计算机上使用 symfony 进行编程。它的地址是http://localhost/RTL/web/app_dev.php/secure_area。

如何将此地址更改为http://localhost/secure_area?

我的意思是删除RTL/web/app_dev.php。

我正在使用 xampp、apache 和 symfony 2.6。

其他地址可能是这样的:

http://localhost/RTL/web/app_dev.php/login    =>     http://localhost/login
http://localhost/RTL/web/app_dev.php/logout   =>     http://localhost/logout
http://localhost/RTL/web/app_dev.php/admin    =>     http://localhost/admin

【问题讨论】:

  • 如果您在本地环境中工作,为什么要删除 app_dev.php?在任何情况下,RTL/web 只是简单地删除添加这样的指令:DocumentRoot "C:/xampp/htdocs/localhost/RTL/web"on 你的虚拟主机。 PS:将应用程序文件夹从 Web 根目录中取出是一种常见(也是最佳)做法。
  • 谢谢。如果我想部署我的应用程序,我应该使用 app.php 而不是 app_dev.php。我怎样才能把它也删除???
  • 带有一些重写规则like here。请记住,您不能删除,只能从 url 中隐藏 app.php。让我知道这是否有效,我稍后会写答案。
  • 谢谢@gp_sflover。这真的很有帮助:)

标签: php apache symfony xampp localhost


【解决方案1】:

根据cmets。

RTL/web 被删除,在 apache 的虚拟主机文件中添加指令 DocumentRoot "C:/xampp/htdocs/localhost/RTL/web"。

然后您可以使用这些 apache mod_rewrite 规则隐藏 app.php:

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]

然后重新启动 apache 服务器以应用修改。

【讨论】:

    猜你喜欢
    • 2013-05-17
    • 1970-01-01
    • 2012-02-05
    • 2013-07-06
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    相关资源
    最近更新 更多