2009-04-06 4 views
0

Wordpress를 CMS로 사용합니다. CMS의 첫 페이지는 대부분 정적이며, 블로그의 실제 블로그 부분은 기본적으로 마치 사용자 정의 페이지 템플릿을 사용하는 새 페이지로 이동되었습니다. 표준 Wordpress 설치의 앞 페이지. 그것은 꽤 잘 작동하지만 여전히 몇 가지 버그가 있습니다. 주요한 것은 페이지 매김이 더 이상 작동하지 않을 것이고, Wordpress는 생성 된 페이지 URL을 인식하지 못할 것입니다.WordPress + mod_rewrite

지금까지 올바른 URL (domain.com/page/2 대신 domain.com/blog/page/2)을 표시하도록 Wordpress를 구성했으며, 특정 페이지를 표시하도록 Wordpress를 구성했습니다. URL 매개 변수 (domain.com/blog?page=N)를 통해 블로그 게시물을 올리십시오. 기본적으로 거의 끝났습니다. domain.com/blog/page/N을 domain.com/blog?page=N에 매핑하면됩니다. 이것은 평범한 오래된 정적 사이트라면 쉬운 일 이겠지만 Wordpress에는 URL 처리 기능이있어 방해 할 수 있다고 생각합니다. "블로그"는 실제 URL이 아니기 때문에 통과해야합니다. 규칙을 두 번, 블로그 페이지 매김을 매핑하기 위해 한 번, 그리고 다시 한번 Wordpress는 규칙적으로 생성 된 URL을 처리 할 수 ​​있습니다 ... 나는 재 작성 규칙에 N 또는 NS 플래그를 사용할 필요가 있다고 생각하지만,

RewriteRule ^/blog/page/([0-9]+)$ /blog?page=$1 

기본 워드 프레스 htaccess로 :

RewriteEngine On 
RewriteBase/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
내가 그들에게

내가 함께 왔어요 규칙을 사용하는 방법을 알고

몇 가지 제안 사항에 따라 .htaccess에 대해 알아 냈지만 여전히 인식하지 못합니다.

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule /blog/page/([0-9]+)$ /blog?page=$1 [N,QSA] 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

내가 URL 매개 변수를 통해 페이지를 변경 상당히 확신이 작업을 수행 - 내가 수동으로 URL의 수를 변경하고 실제로 페이지를 변경 않습니다. 그 차이

답변

1

나는 결국 그것을 알아 냈다. (며칠 후 - 지금까지는 이것을 잊어 버렸다.) 먼저 Wordpress를 업데이트했는지 확인하십시오. 당시 2.5 또는 2.6을 사용하고 있었지만 어떤 이유로 업데이트를하기 전까지는 작동하지 않았습니다.

먼저 사용자 지정 서식 파일을 만듭니다. 이 템플리트를 홈페이지에 사용하여 사용자 정의하고 모든 재즈를 사용자 정의하십시오. "Main Index"(index.php) 템플리트 만 남겨 두십시오. 템플리트는 블로그 색인 페이지에 사용되므로 블로그 루프를 나열하려면 WP 루프가 필요합니다.

이제 두 페이지를 만듭니다. 하나는 홈 페이지 ("집"이라고 부름)이고 다른 하나는 블로그 ("블로그"라고 부름)입니다. "홈"페이지에서 이전에 만든 홈페이지 템플릿으로 템플릿을 설정하십시오. 블로그 페이지에서 기본 템플릿을 그대로두면 기본적으로 "기본 색인"템플릿이 사용됩니다.

이제 '읽기'설정으로 이동하여 '정적 페이지'로 변경하십시오. 앞 페이지의 경우 이전에 만든 "집"페이지를 선택하십시오. 게시물 페이지의 경우 '블로그'페이지를 선택하십시오.

그래야합니다. 실제로 미리 시도했지만 작동하지 않아 리디렉션 규칙을 사용해 보았습니다.나는 시대에 뒤떨어 진 WP 설치를 끝내었다. 사이트 맵 모드가 설치되어있는 경우, "홈"페이지를 제외시켜야 스파이더가 example.com/home에서 홈 페이지의 사본을 선택하지 않도록하십시오. robots.txt에 넣을 수도 있습니다.

도메인 설정이 완료되면 도메인의 루트 (example.com/)가 "집"페이지를 가리 킵니다. 블로그 페이지 (example.com/blog)에 게시물이 나열됩니다. 페이지 매김은 예상대로 작동합니다 (example.com/blog/page/2 등).

1

을 만드는 경우, 웹 서버, LiteSpeed를하다보십시오

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule /blog/page/([0-9]+)$ /blog?page=$1 [R=301] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
+0

/blog /는 Wordpress 페이지 (데이터베이스에 저장된 Wordpress 백엔드를 통해 만들어 짐) –

+0

정렬 : D 내 실수 : D – Mez

+0

안녕하세요, 도움을 주셔서 감사합니다 .--) " "RewriteEngine On"전에 RewriteRule ^/blog/page/([0-9] +) $/blog? page = $ 1 [N, QSA] "하지만 URL을 인식하지 못함 (404 오류 반환) RewriteEngine 이후 –

0

또는

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule ^blog/page/([0-9]+)$ /blog?page=$1 [NC,N] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [NC,L] 
</IfModule> 

노스 캐롤라이나 그것의 N, 그것은 규칙을 다시 적용 할 대소 문자를 구별하게 시도를 다음과 L은 룰 처리를 중지합니다.

+0

감사하지만, 불행히도 작동하지 않았다. LiteSpeed와 함께 .. –