2012-05-05 3 views
1

내 웹 사이트가 www.example.com/pageone.html 대신 www.example.com/pageone/ 링크로 다른 페이지를 표시하려고합니다..htaccess는 어떻게 작동합니까?

문제는 내가 명령을 이해하지 못하기 때문에 .htaccess를 사용하여 혼란 스럽습니다.

내가 첫 번째 단계는, 그러나, htaccess로 파일이 작성하는 것을 이해!

RewriteEngine On 

이 단계 후, 난 (전혀 -d 무슨 생각도 {REQUEST_FILENAME}도 ^이 없다 . *) 및 모든 해당 프로그래밍 텍스트. 내가 참조 할 수있는 문서가 있습니까?

또는 누군가가 나에게 내가

www.example.com/pageone.html 

로 이동하려는 경우, 내가 필요로하는 모든이 URL에 입력하는 것을 이해하는 것이 htaccess로 파일을 구성하는 방법에 대한 간단한 설명을 제공 할 수있는 것은

www.example.com/pageone/ 

및 PHP 파일 등도 포함 할 수 있습니까?

+1

에 서버에 sliently 다시 작성합니다 .. 그리고 내가 구글을 사용하고, 참고하시기 바랍니다 - 내 생각은 내 키워드가 조금 지체 단지 것이다. 이 문서를 찾을 수없는 것 같습니다 –

+1

사용하고자하는 키워드는'mod_rewrite'입니다 : http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html – AlienWebguy

답변

4

우선, e Official Documentation. 특정 문제를 해결하기 위해, 나는 이런 식으로 가겠어요 :

RewriteEngine on #Turn on rewrite 

RewriteCond %{REQUEST_FILENAME} !-f #If requested is not a filename... 
RewriteCond %{REQUEST_FILENAME} !-d #And not a directory 
RewriteRule ^([^/]+)/?$ /$1.html [L] #Preform this redirect 

RewriteCond의는 다음 다음과 같은 규칙이 적용됩니다. 규칙이 여러 개인 경우 각 조건을 작성해야합니다.

이제 Apache 서버는 요청한 경로 (www.example.com/ 다음의 모든 항목)와 일치하여 지정한 규칙 중 하나와 일치하는지 확인합니다. 이 경우, 하나가 :

^([^/]+)$ 

이 정규 표현식은 선택적 후행 슬래시 / 슬래시되지 않는 문자, 임의의 수를 일치합니다. 일치하는 항목이 발견되면 두 번째 매개 변수로 요청을 다시 작성합니다. /$1.html, $1은 "대괄호 사이에 일치하는 항목"을 의미합니다.이 경우 대소 문자는 모두 아닙니다.

플래그 [L] 플래그는이 규칙이 일치하면 규칙 찾기를 중지하도록 다시 쓰기 엔진에 알립니다.

그래서 결론

, www.example.com/whatever/www.example.com/whatever.html

+0

맞아,이 mod_rewrite에 대해 좀 더 배우기 시작할 것 같아. 링크 및 설명 주셔서 감사합니다! –

+0

흠, PHP에서도이 작업을 수행 할 수 있습니까? 또는 다른 확장 기능이 필요합니까? –

+0

@RenoYeo : 이것은 아파치 물건입니다. 실행중인 서버에 속합니다. PHP (즉, 서버 측 언어)가 일을 제어하게하려면 PHP에서 모든 URL을 단일 입력 지점으로 다시 작성한 다음 거기에서 항목을 제어하십시오. (www.example.com/some/pages/을 www.example.com/index.php?route=some/pages/로 리디렉션하고 PHP를 사용하여 제어). –

2
RewriteEngine on 
RewriteBase/

RewriteRule ^([^/]+)$ /$1.html 

이 재 작성을 위해 필요한 것이 전부입니다. 그것은 기본적으로 슬래시가 변수에 할당 할 수 없습니다 "뭐든지 $1. 그래서/foo는 당신이 여기 Apache httpd mod_rewrite 볼 수 공식 문서에 대한

+0

OP는 설명을 원했습니다. 어떻게 작동합니까? 답을 제시하는 것은 대단한 일이지만 OP가 자신이 원하는 방식을 이해하지 못한다면 쓸모가 없습니다. –

+0

그래서 내가 41 분 전에 코멘트에있는 문서에 링크되어 있습니다 :) – AlienWebguy

+0

Right, RewriteBase /? URL의 뒷 부분에 /를 추가한다는 의미입니까? –

1

을 /foo.html 가리 것이라고 말했습니다. 당신이 검색 할 수 있습니다 구글에
url rewriting tutorial과 같은 키워드입니다.
이상한 문자를 정규 표현식이라고 부릅니다. 배우기는 쉽지 않지만 자습서가 많습니다.
추신 :이 답변은 직접적인 대답이 아니지만 앞으로 나아갈 수있는 몇 가지 요소입니다. URL 재 작성이 어떻게 작동하는지 이해하십시오.

+0

아주 기본적인 답변이지만 여전히 관련이 있습니다. –

관련 문제