2017-02-15 13 views
0

У меня есть установка Wordpress в подкаталоге установки Silverstripe. Я не могу заставить переднюю часть сайта Wordpress показать из-за перезаписи, однако задний конец не работает, если я добавляю /index.php.htaccess - Wordpress внутри Silverstripe

Если я попытаюсь подключить /index.php к /subdirectory/index.php, он перенаправляет обратно в подкаталог. В WP htaccess нет правил, поэтому я думаю, что Silverstripe не нравится расширениям.

Я попытался исключить всю папку подкаталогов, добавив в сайт Silvestripe после Rewrite двигателя:

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

Не получить это право. Есть ли способ позволить «подкаталогу» делать свою собственную вещь?

ответ

1

Правила перезаписи применяются также к подпапкам. Если у вас не есть .htaccess в вашей подпапке WP, вы должны создать одно и отключить переписывание URL-адресов для этой папки. Таким образом, положить .htaccess со следующим содержимым в папку WP:

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

Конечно, вы можете также определить пользовательские правила перезаписи ... главное, что у вас есть свой собственный .htaccess.

+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% уверен, что о правилах WordPress):

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> 

Wordpress .htaccess в/WordPress папке

<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>