2009-10-09 4 views
1

바닐라 Wordpress 설치가 포함 된 CakePHP 사이트가 있습니다. 그것은 /app/webroot/blog/에 살고 있습니다. 내가 가지고있는 문제는 이상한 것이다.mod_rewrite를 사용하여 CakePHP 상주 Wordpress 리디렉션을 수정하십시오.

모드 재 작성을 통해 모든 요청을 /app/webroot/blog에서 /blog/으로 리디렉션하도록 사이트를 구성했습니다. 그 이유는 사용자가 app/webroot 경로를 통해 방문했을 때 Wordpress에서 오류를 표시하거나 콘텐츠를 표시하지 않았기 때문이며 /blog/에서 방문하면 정상적으로 작동합니다. 슬래시가없는 /blog을 방문하려고하면 사용자를 /app/webroot/blog으로 리디렉션 할 것이므로 추가했습니다. 여기에 우리가 이러한 목표를 달성하는 데 사용하는 mod_rewrite는 규칙은 다음과 같습니다

RewriteRule ^blog$ blog/ [L] 
RewriteRule ^app/webroot/blog/(.*)$ blog/$1 [L] 

사용자가 워드 프레스의 관리자 섹션을 방문하려고 시도하지만 인증되지 않은 경우,이 /wp-login.php 페이지로 전송하고 쿼리 문자열 매개 변수에 따라 전송 redirect_to에는 사용자가 원래 인증을 요청하기 전에 액세스하려고했던 URL이 들어 있습니다. 원래 URL이 /blog 인 페이지 인 경우에도이 URL은 /blog이 아닌 전체 경로 (/app/webroot/blog/...)를 포함합니다. 사용자가 성공적으로 인증되면 사용자는 아무런 문제가없는 것처럼 로그인 페이지로 다시 전송됩니다 (오류 메시지 등 없음).

위의 두 번째 mod_rewrite 규칙은 문제를 해결할 것이라고 추측 하겠지만 그렇지는 않습니다.

이 내용을 자세히 설명했으면 좋겠어. 잊어 버린 추가 정보를 제공 할 수 있는지 알려 주시기 바랍니다. 감사!

답변

2

당신은 wp 데이터베이스에서 wordpress 옵션을 확인해 보았습니까? 올바른지 두 가지 옵션이 있습니다. 사이트 넘버. 둘 다 http://yoursite.com/blog

+0

예,이 값은 모두 올바르게 설정되어 있습니다. – inkedmn

0

문서 루트 디렉토리 란 무엇입니까? 만들기 응용 프로그램/웹 루트/문서 루트 디렉토리 및 CakePHP의 기본 재 작성 규칙이 이미 존재하는 파일과 디렉토리에 대한 규칙이 있기 때문에 당신은 추가 재 작성 규칙이 필요하지 않습니다 : 그래서

당신의 /app/webroot/index.php을 당신이 응용 프로그램의 진입 점 주소 것입니다 .../

및 응용 프로그램/웹 루트/블로그/주소를 워드 프레스 엔트리 포인트가 될 것입니다 .../블로그/

기본 재 작성 규칙이 구성 충분하다 :

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d # this will go to your blog dir, if it exists 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] # this is CakePHP app 
관련 문제