2017-02-15 5 views
0

Silverstripe 설치 하위 디렉토리에 Wordpress 설치가 있습니다. 나는 Wordpress 사이트의 프론트 엔드를 재 작성으로 인해 보여줄 수는 없지만, /index.php를 추가하면 백엔드는 아무런 문제가 없다.htaccess - Silverstripe 내의 Wordpress

/subdirectory/index.php에 /index.php를 추가하면 하위 디렉토리로 다시 리디렉션됩니다. WP htaccess에는 규칙이 없으므로 Silverstripe가 확장 기능을 선호하지 않는다고 생각합니다.

RewriteCond %{REQUEST_URI} !^/subdirectory/.* 

가 제대로을받지 :

나는 재 작성 엔진 후 Silvestripe 사이트에이를 추가하여 전체 하위 폴더를 제외했습니다. '하위 디렉토리'가 자신의 일을 할 수있게하는 방법이 있습니까?

답변

1

다시 쓰기 규칙은 하위 폴더에도 적용됩니다. 에 WP 하위 폴더에 .htaccess이없는 경우 해당 폴더에 대해 URL 재 작성을 비활성화해야합니다. 그래서, 당신의 WP 폴더에 다음과 같은 내용을 가진 .htaccess을 넣어 : 당신은 또한 당신이 .htaccess 자신을 가지고, 중요한 것은이 ... 규칙을 다시 사용자 정의 할 수 있습니다 물론

<IfModule mod_rewrite.c> 
    RewriteEngine Off 
</IfModule> 

.

+0

죄송합니다, 나는 이것을 시도했지만, 백 엔드가 여전히 작동하는 동안 403 오류를 반환한다고 언급 했어야합니다. RewriteEngine 제거 Silverstripe 404 오류를 보여줍니다 – Craig

+0

@Craig 어쩌면 index.php 가능한 인덱스 페이지로 없어? 'DirectoryIndex' 설정으로 고칠 수 있어야합니다 ... http://stackoverflow.com/questions/10002439/make-index-html-default-but-allow-index-php-to-be-visited-if-typed-in – bummzack

+0

다시 한번 감사드립니다! 그게 문제를 정리 한 것 같습니다. – Craig

1

SilverStripe 루트 폴더와 WordPress 폴더 모두에 규칙이 있어야합니다. 그렇지 않으면 WordPress가 index.php없이 실행되지 않습니다. 이런 식으로 뭔가를 (워드 프레스 규칙에 대한 100 % 확실하지 않지만) 작동합니다 :

SilverStripe를 htaccess로

<IfModule mod_rewrite.c> 
    SetEnv HTTP_MOD_REWRITE On 
    RewriteEngine On 
    RewriteBase '/' 

    RewriteCond %{REQUEST_URI} !^/wordpress/.* 
    RewriteCond %{REQUEST_URI} ^(.*)$ 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} !\.php$ 
    RewriteRule .* framework/main.php?url=%1&%{QUERY_STRING} [L] 
</IfModule> 

워드 프레스 htaccess로는/워드 프레스 폴더에

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /wordpress/ 
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /wordpress/index.php [L] 
</IfModule>