在开发模式下,我的 symfony admin/backend 应用程序可以通过http://localhost/backend_dev.php访问。对于生产模式,我创建了一个控制器 php 文件 admin.php,因此现在在生产中可以通过http://www.domain.com/admin.php访问管理应用程序。
我需要做什么才能允许在 domain.com/admin 或 admin.domain.com 上访问管理应用程序?
谢谢!
在开发模式下,我的 symfony admin/backend 应用程序可以通过http://localhost/backend_dev.php访问。对于生产模式,我创建了一个控制器 php 文件 admin.php,因此现在在生产中可以通过http://www.domain.com/admin.php访问管理应用程序。
我需要做什么才能允许在 domain.com/admin 或 admin.domain.com 上访问管理应用程序?
谢谢!
您可以在该子域 (admin.domain.com) 上打开新的子域,并使用您的 symfony 应用程序设置指向服务器的虚拟主机。
您可以查看完整的教程 [这里][1]。
[1]:http ://blog.mirthlab.com/2008/03/04/dynamically-loading-symfony-applications-via-subdomains/这里
您可能最好将所有像管理员一样的东西放在 admin 目录中,但是您可以使用 mod_rewrite 作弊
RewriteRule ^admin/?$ admin.php [L]
以下是您可以做到的一些基本方法:
将admin.php转储到 www.domain.com 根目录中名为“ admin ”的文件夹中,并将admin.php重命名为index.php。(最简单的解决方案)
当然,这样你必须将 admin.php 中的所有相对链接调整为上一级(在所有相对url 的开头附加 '../' 应该有效),以及所有绝对链接以反映更改。
关于您的 admin.domain.com,您应该联系您的网络主机/域名提供商为您设置子域。
或者,如果您的虚拟主机允许 .htaccess 文件,您可以编写一个 mod_rewrite 规则。
我将创建一个名为 admin 的模块...然后大概是索引操作,我会将您拥有的任何内容放入您的 admin.php 文件中。
然后在您的 routing.yml 文件中,只需将 yourdomain.com/admin 指向 admin/index....这样您就可以将所有内容保存在 symfony 前端控制器中
安德鲁
确保您的 DNS 正确解析 admin.domain.com,然后在 /web 中编辑 .htaccess 以让 mod_rewrite 获取您的子域并将请求重写到 admin.php。可以选择将您的 admin.php 重命名为不太明显的名称,或者也可以在其中进行快速子域检查,或者如果有人点击 domain.com/admin.php,则使用 301 重定向扩展重写。
以下简单的 .htaccess 对我有用:
Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
# The admin subdomain returns the backend
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_HOST} ^admin\.domain\..*
RewriteRule ^(.*)$ admin.php [QSA,L]
# Check if the .html version is here (caching)
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
# No?, so we redirect to our front web controller
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
更改domain
为您自己的域。