mod_rewrite는 의사 정적 페이지를 구현할 수 있는 Apache의 매우 강력한 기능입니다. 아래에서 자세한 사용방법을 설명드리겠습니다
1. Apache가 mod_rewrite를 지원하는지 확인하세요
php에서 제공하는 phpinfo() 함수를 통해 환경 구성을 확인하고, apache2handler에서 활성화한 모든 모듈을 나열하는 Ctrl F를 통해 "Loaded Modules"를 찾습니다. "mod_rewrite"가 포함되어 있으면 이미 지원되는 것입니다. 더 이상 필요하지 않습니다. 설정을 계속하세요.
"mod_rewrite"가 켜져 있지 않으면 Apache 설치 디렉터리 "/apache/conf/"에서 httpd.conf 파일을 열고 Ctrl F를 사용하여 "LoadModule rewrite_module"을 찾은 다음 앞에 있는 "#"을 삭제합니다.
찾을 수 없다면 "LoadModule" 영역으로 이동하여 마지막 줄에 "LoadModule rewrite_module,modules/mod_rewrite.so"를 추가하고(전용 줄 필수) Apache 서버를 다시 시작합니다.
2. Apache 서버가 .htaccess를 지원하도록 합니다
로컬 APACHE 서버가 ".htaccess"를 지원하도록 만드는 방법은 무엇입니까? 실제로 Apache의 httpd.conf 설정을 수정하여 APACHE가 .htaccess를 지원하도록 만들 수 있습니다. httpd.conf 파일을 엽니다(어디서? APACHE 디렉터리의 CONF 디렉터리에 있음).
텍스트 편집기로 연 후
이
으로 변경되었습니다.그렇습니다.
3. .htaccess 파일 생성
.htaccess 파일을 만드는 가장 쉬운 방법이 하나 있습니다:
메모장으로 열고, 파일 – 다른 이름으로 저장을 클릭하고, 파일명 창에 ".htaccess"를 입력하고, 녹색 부분 전체에 주목하세요,
즉, 영어 따옴표를 포함하고 저장을 클릭합니다.
4.다시 쓰기 규칙 학습
새 .htaccess 파일을 생성한 후 해당 파일에 다음 내용을 작성합니다.
#rewriteengine의 RewriteEngine은 다시 쓰기 엔진 스위치를 켜고 끄는 것입니다
RewriteRule ([0-9]{1,})index.php?id=1
RewriteRule을 설명하겠습니다. RewriteRule은 정규 표현식을 지원하는 재작성 규칙입니다. 위의 ([0-9]{1,})는
숫자를 나타냅니다.
단어로 구성되어 있으며 끝 표시로 숫자로 끝나는 것을 나타냅니다! 자, 이제 의사 정적 페이지를 구현할 수 있습니다: RewriteEngineonRewriteRule([a−zA−Z]1,)−([0−9]1,).htmlindex.php?action=1&id=2
([a-zA-Z]{1,})-([0-9]{1,}).html은 규칙이고 index.php?action=1&id=2는 대체할 형식이며 1은
하나의 괄호는 값과 일치하고, 2는 두 번째 값을 나타내는 식입니다! ! 처리 PHP 스크립트를 작성합니다: index.phpPHP 코드 echo '당신의 작업은 다음과 같습니다: ′._GET['action'];
에코 '
';
echo '귀하의 ID는 다음과 같습니다:' . $_GET['id'];
?>
좋습니다. 이제 브라우저에 다음을 입력해 보겠습니다.
localhost/page-18.html
출력은 다음과 같습니다.
귀하의 작업은 페이지
입니다.
귀하의 ID는 18
Apache의 httpd.conf를 확인하면 LoadModule rewrite_module module/mod_rewrite.so 줄이 없습니다. 이 모듈을 수동으로 생성해야 합니다.
아파치 소스 패키지 경로는 /ftp/httpd2.2
아파치 설치 경로:/usr/local/apache/
1. mod_rewrite 모듈 추가
오류가 없으면 Apache의 모듈 디렉터리(/usr/local/apache/modules)에서 mod_rewrite.so 파일을 컴파일해야 합니다.
httpd.conf 파일을 편집하고 다음과 같이 httpd.conf에 mod_rewrite.so의 로딩 문이 이미 포함되어 있는지 확인합니다.
LoadModule mod_rewrite_module 모듈/mod_rewrite.so
2.아파치를 다시 시작하세요
1. 다음과 같은 오류가 발생하는 경우:
httpd: /usr/local/apache/conf/httpd.conf의 54행에 구문 오류가 있습니다. /usr/local/apache/modules/mod_rewrite.so 파일에서 API 모듈 구조 `mod_rewrite_module'을 찾을 수 없습니다. / usr/local/apache/modules/mod_rewrite.so: 정의되지 않은 기호: mod_rewrite_module
필요
LoadModule mod_rewrite_module 모듈/mod_rewrite.so
이
으로 변경되었습니다.LoadModule rewrite_module 모듈/mod_rewrite.so
2. 아래와 같은 오류가 발생하는 경우
httpd: /usr/local/apache/conf/httpd.conf의 54행에 구문 오류가 있습니다. rewrite_module 모듈이 내장되어 있어 로드할 수 없습니다.
은 모듈이 내장되어 있어 전송할 필요가 없음을 나타냅니다. 주석 처리
#LoadModule rewrite_module 모듈/mod_rewrite.so
3. 가상 사이트에 대한 URL 재작성 활성화
1. httpd-vhost.conf를 편집하고 해당 사이트 태그에
을 추가합니다.예:
4. 사이트의 재작성 규칙을 ".htaccess"라는 파일 이름으로 사이트의 루트 디렉터리에 저장합니다.
5. 아파치를 다시 시작하세요