2011-02-03 3 views
-1

ISAPI 재 작성을 사용하여 Windows 2003 VPS 서버에 yourls.org (URL 단축 서비스)를 설치했습니다. 이미 ISAPI를 설치하고 Wordpress로 다시 작성 했으므로 작동 중임을 알고 있습니다. 내 ISAPI 재 작성에ISAPI 재 작성으로 Windows 2003에서 yourls.org 리디렉션 문제가 발생했습니다.

http://code.google.com/p/yourls/wiki/htaccess

하지만, 리디렉션이 작동하지 않습니다 : 나는 페이지에서 제안 된 규칙을 사용했다. 페이지가 반복되어 자체로 리디렉션하려고합니다.

다시 쓰기 규칙에 익숙하지 않아 도움이 될 것입니다. 적용한 규칙은 다음과 같습니다.

RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} (/|\.php|/[^.]*)$ [NC] 
RewriteRule ^(.*)$ /yourls-loader.php [L] 

응용 프로그램의 위키에있는 내용에 따라 세 번째 조건부 라인을 추가했습니다.

누군가가 이것이 작동하지 않는 이유에 대해 밝힐 수 있다면, 고맙겠습니다.

답변

0

좋아, 이것은 하루 종일 걸렸지 만 작동 시켰습니다. 관심있는 사람들에게 ISAPI 재 작성에는 아무런 문제가 없습니다. 문제는 코드에 있습니다. yourls-loader.php라는 파일에는 URL을 확인하고 해체하고 재구성하는 줄이 있습니다. 문제는 항상 새로운 URL을 https로 강제 전송한다는 것입니다. 서버에 보안 인증서가 없다면 작동하지 않을 것입니다 !!!

//$scheme = (isset($_SERVER["HTTPS"]) ? 'https' : 'http'); 
//$request = str_replace(YOURLS_SITE.'/', '', $scheme . 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); 
$request = str_replace(YOURLS_SITE.'/', '', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); 

첫 번째 2 줄이 주석 처리되었으므로 여기에있는 내용입니다. 내가 신뢰하고 내 서버가 어떻게 설정되었는지 알기 때문에 (내가 직접 해보았 기 때문에)이 체크 시스템이 필요 없다고 느낍니다.

Windows 시스템에서주의해야 할 또 하나의 점은 은이 파일의 시작 부분에 제안 된 Server_URI 구문을 추가해야한다는 것입니다.

if (isset($_SERVER['HTTP_X_REWRITE_URL'])){ 
    $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL']; 
} 

나는 이것이 누군가를 돕기를 바랍니다. 온라인 지원없이 해결하기 위해 하루 종일 걸렸습니다.

관련 문제