2012-09-04 4 views
8

MODX Revolution 2.2.4-pl을 사용하고 있습니다. 제공된 .htaccess 파일을 사용 중이며 친숙한 URL을 사용하도록 설정했습니다. 이것들은 제 재 작성 규칙입니다.친숙한 URL에서 .html을 제거하는 방법 - Modx?

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

.HTML을 URL에서 제거하려면 어떻게해야합니까?

저는 지난 20 분 동안이 문제에 대해 조사를 해왔고 솔루션은 효과가 없었습니다. 감사합니다.

답변

23

이 방법으로 내장 훨씬 쉽게있다. Manager에 로그인하십시오.

MODX 혁명

의 2.2.x 및 이전 버전은 : System -> Content Types로 이동합니다.

2.3.x 이상 : Content -> Content Types으로 이동하십시오.

"파일 확장명"에 쓰여진 내용을 HTML로 찾아 지우십시오. 표에서 .html을 두 번 클릭하여 편집 가능한 입력란을 활성화하면됩니다. 내용을 지운 후에 캐시를 지우십시오. Tools -> Configuration -> Friendly URLs

MODX 진화는

이동합니다.

"Friendly URL Suffix"의 내용을 삭제하십시오. 캐시를 저장하고 지 웁니다.

+2

+1 이것은 'MODX 방식'입니다. .htaccess 솔루션보다 효율적으로 재 작성을 거치지 않고 리소스에 '직접'액세스 할 수 있습니다 모든 요청에. .html로 끝나는 페이지를 가리키는 기존 외부 링크가있는 경우 RewriteRule도 사용하는 것이 좋습니다. – okyanet

1

먼저,이 .htaccess가 무엇을하려고하는지 이해해야한다고 생각합니다.

실제 파일이나 디렉토리 (예 : 이미지, CSS 또는 "기본"웹 사이트의 일부가 아닌 다른 스크립트)가 아닌 모든 요청을 사이트로 리디렉션하려고합니다. 컨트롤러는 index.php에 있습니다.

당신이하려는 것은 * .html 파일을 사이트 (프론트 컨트롤러가 아닌)에서 사용하고 깨끗한 URL을 사용하게하면 다른 종류의 다시 쓰기를 사용해야합니다. 더

RewriteCond %{REQUEST_FILENAME}.html -f 
RewriteRule ^(.*)$ $1.html [L,QSA] 

이 규칙 같은 아마 뭔가 http://domain.com/somepage의 형태로 요청을하고 자동으로 요청을 처리하는데 http://domain.com/somepage.html를 가리키는 것이다.

3

이 나를 위해 작동합니다

# The Friendly URLs part 
#RewriteCond %{REQUEST_FILENAME} !-f 
#RewriteCond %{REQUEST_FILENAME} !-d 
#RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 


RewriteCond %{REQUEST_URI} \.html$ 
RewriteRule ^(.*)\.html$ $1 [R=301,L] 

RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 
#RewriteRule . /index.php [L] 
+0

고마워요! 대단히 감사합니다. – Brant

+0

문제 없음! [비록 메모리가 작동한다면 stackexchange 질문에서 이것을 얻었습니다.] –

관련 문제