网站自动将URL更改为dev / production服务器

时间:2016-08-12 11:23:10

标签: php apache .htaccess codeigniter netbeans

我继承了一个webapp,我试图在我的工作PC上本地设置Xampp,Codeigniter& Netbeans的。

我已将项目成功导入netbeans并可以点击运行按钮并在浏览器中打开。但是我有一些奇怪的行为,而且我真的不明白我做错了什么。

index.php有一行:

define('ENVIRONMENT', 'development');

然后在codeigniter应用程序文件夹中有一个开发文件夹,其中包含config.php。这有base_url设置,当前设置为指向开发服务器(" http://exampleDevServer")

$config['base_url'] = 'http://exampleDevServer"';

我已更改此行,使其指向localhost上的xampp服务器,即

$config['base_url'] = $config['base_url']   = 'http://127.0.0.1/';

当我按下运行按钮时,它看起来很简单地转到该服务器,然后立即被重定向到http://exampleDevServer

.htaccess文件包含以下内容:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^http://exampleDevServer$ [NC]
RewriteRule ^(.*)$ http://exampleDevServer/$1 [L,R=301]
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

我尝试过重写开启和关闭都没有效果。

我想要发生的是,当我在本地开发时,它从xampp服务器运行,然后我可以将define更改为生产(或其他),然后指向写入位置。我需要在上面做些什么来改变这个?

2 个答案:

答案 0 :(得分:0)

您可以更改配置文件 文件: application / config / config.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');


$host = (isset($_SERVER['HTTP_HOST'])) ? $_SERVER['HTTP_HOST'] : 'CLI';
$config['local_ip'] = array('localhost','127.0.0.1');

if($host != 'CLI') {
    if(in_array($host,$config['local_ip'])) {
        $config['base_url'] = '';
    } else {
        $config['base_url'] = 'YOUR_LIVE_URL';
    }
} else {
    if(CLI_ENVIRONMENT == 'local') {
        $config['base_url'] = '';
    } else {
        $config['base_url'] = 'YOUR_LIVE_URL';
    }
}
?>

答案 1 :(得分:0)

我相信这归结为http://shouldiblamecaching.com/ - 是的。用Firefox自动指导我认为localhost应该去的东西,在这种情况下是dev服务器而不是我的本地服务器。

我也按照下面的评论中的建议更改了我的htaccess文件。

RewriteEngine on
#RewriteCond %{HTTP_HOST} !^http://exampleDevServer$ [NC]
#RewriteRule ^(.*)$ http://exampleDevServer/$1 [L,R=301]
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]