Php 将codeigniter配置为仅在我的域下运行
我在linux服务器上有一个特定的ip地址和一个指向该ip的域。 我设置了一个codeigniter应用程序,过了一会儿我意识到至少有几个域(不是我的)也指向我的ip地址。 当域不是我自己的域时,我需要停止codeigniter为页面提供服务。Php 将codeigniter配置为仅在我的域下运行,php,apache,codeigniter,dns,Php,Apache,Codeigniter,Dns,我在linux服务器上有一个特定的ip地址和一个指向该ip的域。 我设置了一个codeigniter应用程序,过了一会儿我意识到至少有几个域(不是我的)也指向我的ip地址。 当域不是我自己的域时,我需要停止codeigniter为页面提供服务。 有没有干净的解决办法?也许是url库的问题?我想知道在这种情况下是否有最佳做法。但也许最佳实践需要在其他点停止其他域?类似于ApacheConfig或htaccess?实现这一点的最佳实践是使用虚拟主机。如果您以前从未使用过ApachevHosts,那么
有没有干净的解决办法?也许是url库的问题?我想知道在这种情况下是否有最佳做法。但也许最佳实践需要在其他点停止其他域?类似于ApacheConfig或htaccess?实现这一点的最佳实践是使用虚拟主机。如果您以前从未使用过ApachevHosts,那么您最好在做任何我要说的事情之前阅读相关指南 顺便说一下,为了正确区分指向服务器的域,您应该做的是: 假设您的域是www.mydomain.com,您的站点位于/var/www/vhosts/myproject/ 首先,转到apache2.conf文件并添加以下行:
Include sites-enabled/
您应该在apache配置上启用虚拟主机,然后在/etc/apache2/sites available下创建一个www.mydomain.com配置文件。应该是这样的:
# Ensure that Apache listens on port 80
Listen 80
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/vhosts/myproject
ServerName www.mydomain.com
</VirtualHost>
这将在启用该配置文件的站点中创建符号链接
然后重新启动服务
提示:我不知道codeigniter的具体行为。在www.mydomain.com文件中声明DocumentRoot时,必须指向包含项目index.php文件的目录。I:E.在FuelPHP中是public/目录,因此,如果您使用的是Fuel,您应该写:
DocumentRoot /var/www/vhosts/myproject/public/
因此,请特别检查您是否指向codeigniter前控制器
对指向服务器的其他域重复此操作,站点下的特定配置文件可用
希望这有帮助 将多个域指向一个IP是一种常见情况。您只需要确保您的apache配置已设置VirtualHost来处理您的域而不是其他域 如果您担心主机上有人正在将apache配置设置为指向您的CI目录,您可以尝试在index.php文件中执行类似操作:
<?php
if ($_SERVER['HTTP_HOST'] != 'YOUR DOMAIN')
{
// redirect, die, etc
}
<?php
if ($_SERVER['HTTP_HOST'] != 'YOUR DOMAIN')
{
// redirect, die, etc
}