카

설치후 주소가..

· 2013-03-19 (화) 13:47:38 · 874 · 5
그누보드 b3설치는되고 접속하면

주소넘어갈때 aaa.com/web/bbs/current_connect.php 이렇게가야는데


aaa.comweb/bbs/current_connect.php
↑
요렇게 넘어가는데 왜이런거죠? ㅠㅠ
|

댓글 5개

경로 관련된 부분은 http://sir.co.kr/bbs/board.php?bo_table=g4s_bug&wr_id=98&sca=&sfl=&stx=&spt=0&page=1 를 읽고 테스트해보고 결과를 알려주시면 관리자님에게도 도움이 될 것 같습니다.
경로가 상수화 되어 오류가 많이 발생하고 있습니다.
보안서버 경로를 사용하는 경우 ../bbs 와 같은 주소를 사용하게 되면 경고창이 발생하게 되므로 웹상의 직접주소와 서버상의 직접경로로 표시하게 되었습니다.
테스트 하시는 곳의 주소와 FTP 정보를 비밀글로 알려주시면 경로 문제를 해결하는데 많은 도움이 됩니다.
2013-03-19 (화) 15:58:46
설치는되는데.. ㅠㅠ 기본주소 다음에 "/" 가들어가고 그담에 img, skin등의 폴더로 들어가야는데
"/"가 빠저서 메인화면이 텍스트만나오고 다른 링크로는 전혀안들어가져요 ㅠ
common.php 파일을 보면 g4_path() 함수가 있습니다. 다음으로 교체한 후 테스트 해주시겠어요?

[code]
function g4_path()
{
$path = dirname(__FILE__); // 예) /home/sir/www/g4s
$linux_dir = str_replace("\\", "/", $path); // 예) /home/sir/www/g4s
$document_root = str_replace("\\", "/", $_SERVER['DOCUMENT_ROOT']); // 예) /home/sir/www

if (strpos($linux_dir, $document_root) === false) {
// DOCUMENT_ROOT와 실제 실행파일 경로가 다른 경우
// 예:
// var_dump($_SERVER['DOCUMENT_ROOT']): "C:/public/www"
// var_dump(dirname(__FILE__)): "C:\public\boards\g4s"
//
// 이런 경우는 SCRIPT_NAME에서 디렉토리 경로를 하나씩 올라가면서 linux_dir에 그 디렉토리가 존재하면
// 그 때가 우리가 원하는 $base_dir이 된다.

// $needle = dirname($_SERVER['SCRIPT_NAME']);
// while (strpos($linux_dir, $needle) === false) $needle = dirname($needle);
// 더 간단하게...
for($base_dir = dirname($_SERVER['SCRIPT_NAME']); strpos($linux_dir, $base_dir) === false; $base_dir = dirname($base_dir));

if (strlen($base_dir) && strlen($linux_dir) != (strrpos($linux_dir, $base_dir)+strlen($base_dir))) {
// 만일 스크립트가 g4s가 설치된 곳이 아닌 디렉토리라면
// $linux_dir에서 $base_dir이 시작되는 포지션값과 $base_dir 스트링 길이를 합한 값이 $lnux_dir 스트링 길이와 일치하지 않게 된다.
//
// 예:
// $linux_dir = 'C:/public/boards/g4s'
// dirname($_SERVER['SCRIPT_NAME']) = '/boards/main'
// $base_dir = /boards
// 이런 경우는 $base_dir로 나온 값을 기준으로 $linux_dir에서 가져오면 된다.
// $lnux_dir에서 $base_dir에서부터 뽑아오면 /boards/g4s가 된다. 이것이 우리가 원하는 값...
//
// $lnux_dir = 'C:/public/boards/g4s'
// dirname($_SERVER['SCRIPT_NAME'] = '/boards'
// $base_dir = '/boards'
// $lnux_dir에서 $base_dir에서부터 뽑아오면 /boards/g4s가 된다. 이것이 우리가 원하는 값...
$base_dir = substr($linux_dir, strrpos($linux_dir, $base_dir));
}
}
else {
$base_dir = preg_replace('#^'.$document_root.'#i', '', $linux_dir); // 예) /g4s
}

if (strlen($base_dir) && substr($base_dir, 0, 1) != '/') $base_dir = '/'.$base_dir;

$port = $_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : '';
$http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://';

$result = array();
// 윈도우의 경우 역슬레쉬 경로인데 그다지 권장하지 않는다. php에서는 슬레쉬도 경로 인자로 인식하므로 슬레쉬 사용.
//$result['path'] = $path;
$result['path'] = $linux_dir;

$result['url'] = $http.$_SERVER['SERVER_NAME'].$port.$base_dir;
$result['curr_url'] = $http.$_SERVER['SERVER_NAME'].$port.$_SERVER['PHP_SELF'];
$result['curr_uri'] = $result['curr_url'] . ($_SERVER['QUERY_STRING'] ? '?'.$_SERVER['QUERY_STRING'] : '');

return $result;
}
[/code]
common.php 이 g4_path() 함수를 이 코드로 대체하여 설치 테스트 부탁 드립니다.

[code]
function g4_path()
{
$result['path'] = str_replace('\\', '/', dirname(__FILE__));
$tilde_remove = preg_replace('/^\/\~[^\/]+(.*)$/', '$1', $_SERVER['SCRIPT_NAME']);
$document_root = str_replace($tilde_remove, '', $_SERVER['SCRIPT_FILENAME']);
$root = str_replace($document_root, '', $result['path']);
$port = $_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : '';
$http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://';
$user = str_replace(str_replace($document_root, '', $_SERVER['SCRIPT_FILENAME']), '', $_SERVER['SCRIPT_NAME']);
$result['url'] = $http.$_SERVER['SERVER_NAME'].$port.$user.$root;
return $result;
}
[/code]
댓글을 작성하시려면 로그인이 필요합니다.

버그신고

4,191건

  문의게시판을 이용해 주세요 :) https://sir.kr/co_qa  

+
분류 제목 글쓴이 날짜
13-03-23
13-03-22
13-03-22
13-03-21
13-03-21
13-03-21
13-03-21
13-03-20
13-03-20
13-03-20
13-03-20
13-03-19
13-03-19
13-03-19
13-03-19
13-03-19
13-03-19
13-03-19
13-03-19
13-03-19