2014-03-02 6 views
1

나는 WAMP가있는 로컬 윈도우 서버가 있으며 www 폴더에이 서버에 무들을 설치했습니다.URL을 변경하지 않고 ip/sub 폴더로 URL 리디렉션

그래서 당신은 여기에서 무들에 액세스 할 수 있습니다 78.93.44.123/moodle

내가 Hostgator에와의 cPanel 계정이 있습니다.

학생들은 대학 외부에서 moodle.mcst.edu.sa가 아닌 78.93.44.123/moodle에있는 moodle 웹 사이트에 액세스하길 원합니다.

즉, 나는 그들이 IP 주소를보고 싶지 않습니다. 그래서, 나는 다음과 같은의 cPanel에 고급 DNS 영역 편집기에서 A 레코드를 추가했습니다 :

moodle.mcst.edu.sa => 78.93.44.123

이는 URL moodle.mcst 리디렉션합니다. edu.sa를 서버 홈 페이지 (www/index.php)에 추가하십시오. 실제로, 나는 리디렉션 할 moodle.mcst.edu.sa => 78.93.44.123/moodle

그래서, 내가 할 www가/용의 index.php의 내용을 변경했습니다 :

<?php 
header('Localhost: /moodel'); 
?> 

이를 잘 작동합니다. 그것은 리디렉션 moodle.mcst.edu.sa => 78.93.44.123/moodle

그러나 문제는 다음과 같습니다 moodle.mcst.edu.sa =>

78.93.44.123/moodle :에서 URL 변경 나는 싫어. 나는 사용자가 주소 표시 줄에있는 IP를 보길 원치 않는다.

어떻게 URL을 변경하지 못하도록 할 수 있습니까? .htaccess 파일을 사용해야합니까? 나는 어떤 일을 했습니까?

것은

감사

을 제발 도와주세요

주 : www가에서/무/config.php를 I vave :

$CFG->wwwroot = 'http://78.93.44.123/moodle'; 
+0

내부적으로 다른 도메인/IP를 리디렉션 할 수 없으므로 URL이 변경됩니다. – Prix

+0

.htaccess 파일은 어떻습니까? IP 변경을 막기 위해 어떻게 사용할 수 있습니까? –

+0

그 설정 라인을'$ CFG-> wwwroot = 'http : //moodle.mcst.edu.sa/moodle';로 변경하면 어떻게됩니까? – Sumurai8

답변

1

내가 무 당신이 입력 한 URL을 결정하는 방법을 확실하지 오전 . 은 IT에 다음

$CFG->wwwroot = 'http://moodle.mcst.edu.sa';

에 설정을 설정하여 WWW-루트에 .htaccess 파일을 넣고 추가 : 다음을 시도 할 수 있습니다 (하지만 실제로 작동하는 경우에 나는 테스트 할 수 없습니다)

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/moodle 
RewriteRule ^(.*)$ /moodle/$1 [L] 

이것은 mod_rewrite의 규칙입니다. 호스트 사이에 상기 질의 스트링 (example.com/asdf?qwer=1asdf) 이전 URL이 정규식 ^(.*)$ 일치 될 수 있다면

  1. 최초로 확인. 아마 이것은 당신이 어떤 URL에 대해서도 사실이라는 것을 놀래주지 않을 것입니다. 전체 URL은 첫 번째 캡처 그룹으로 저장됩니다 (대괄호로 인해 preg-like syntax).
  2. 그런 다음 모든 조건이 참인지 확인합니다. %{REQUEST_URI}은 1 단계에서 검색 한 URL의 일부이지만 접두사는 슬래시입니다./moodle로 시작하지 않았는지 확인합니다. 이렇게하면 규칙 자체가 일치하지 않으므로 무한 루프가 발생합니다.
  3. 2 단계가 참이면 URL을 /moodle/$1으로 다시 씁니다. $1은 1 단계에서 첫 번째 캡처 그룹으로 바뀝니다. [L] 플래그는이주기의 다시 쓰기를 중지하며 [R] 플래그가 없으면 외부 리디렉션 대신 내부 다시 쓰기로 설정됩니다.
  4. 다음 단계에서이 모든 단계를 다시 시도하지만 2 단계에서 실패합니다. 내부적으로 다시 작성된 URL은 이미 /moodle으로 시작하므로 조건은 false입니다.
+0

감사합니다. @ Sumurai8. 나는 네가 한 말대로했다. http : //moodle.mcst.edu.sa에서 지금 테스트 할 수 있습니다. 실제로 그것은 moodle 홈 페이지에서만 작동합니다. 내 무들 웹 사이트의 링크를 클릭하면 URL이 http://moodle.mcst.edu.sa/moodle로 변경됩니다. –

+0

설정 라인에서 무들을 삭제했습니다. 이 경우에도 여전히 작동합니까? 나는 그것이 모든 URL을 만드는 데 사용하는 것 같아요. – Sumurai8

+0

Thaaaaaaaaaaaaaaaaank yooooou Sumurai8 :) 완벽하게 작동하고 있습니다 –

관련 문제