2013-12-09 2 views
2

로컬 서버 및 라이브 개발 환경에서 잘 작동하는 사이트에서 라이브 서버에 배포하려고 할 때 문제가 발생합니다. 기존 호스팅 제공 업체와 호스팅).Silverstripe mod_rewrite 문제 (내 생각)

전 사이트와 다른 서버에서 문제없이 여러 번 해본 것처럼 사이트를 서버에 업로드하고 데이터베이스 구성을 업데이트했습니다. 이 시간은, 그러나, 내가되게되었다

www.domain.com/index.php/page_name 

후 : 사이트가 나타 나는 루트 폴더에서 htaccess로 파일을 제거 할 때

SilverStripe Framework requires a $databaseConfig defined. 

그러나, 모든 URL은과 같이 나타났다 몇 번의 조사를 통해 index.php 문제에 대한 해결책을 찾았습니다. 내 _config 파일에 다음을 추가

Director::setBaseURL('/'); 

내가 이런 짓을하고 URL의

그러나 그들이 나에게 (404)

을 줄 것이라고에 나는 htaccess로 파일을 복원하고이 블록으로 좁혀 탐색, 제대로 등장 이 자리에있을 때

RewriteCond %{REQUEST_URI} ^(.*)$ 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} !\.php$ 
    RewriteRule .* framework/main.php?url=%1 [QSA] 

, 내 URL이

사람이 어떤 난이 있습니까 404을 생산, 데이터베이스 설정 오류가 없을 때, 위에서 언급 한 수 무엇이 여기에서 계속 될 수 있는지에 관해서 nsight? 나는 호스트와 이리저리 많이왔다. 그는 그다지 지식이 없기 때문에 어떤 충고도 할 수없고,이 측면에 있어서는 천재가 아니다.

답변

2

나는 당신이 그렇게 디렉터 설정은/당신 YAML config 파일에 배치해야합니다 수 SilverStripe 3.1을 사용하는 가정합니다 (정적은 더 이상 사용되지 않습니다) :이 비록

Director: 
    alternate_base_url: '/' 

함께 문제를 중심으로하는 데 도움이 base_tag. 당신은 '/'을 사용할 수 있습니다

RewriteEngine On 
RewriteBase '/' 

또는 공공 루트가 아닌 경우 폴더 SS가에 설치됩니다

주요 ModRewrite 문제

는 그러나 RewriteBase을 추가하여 해결할 수 있습니다. 이것은 일반적으로 $base = dirname($_SERVER['SCRIPT_NAME']); 및 기타 작은 것들을 검사하여 SilverStripe 설치 관리자가 자동으로 처리합니다. install.php5 줄 1483을 확인하면이 도구를 사용하여 RewriteBase를 파악할 수 있습니다.

그래도 해결되지 않으면 로컬 설치 서버에 복사하는 대신 새로 설치해보십시오.

1

_ss_enviroment.php를 사용하여 데이터베이스 구성 정보를 정의합니까? SS 2.4에서 3.1.2로 마이그레이션 한 프로젝트에서와 비슷한 경험을했습니다.

// Use _ss_environment.php file for configuration 
//Please note that your system should have a file, _ss_environment.php, with database connectivity data, 
require_once("conf/ConfigureFromEnv.php"); 

global $database; 
$database = ''; 

내가이

도움이되기를 바랍니다 _config.php 사이트의

설정이