2017-02-15 39 views
0

我有一個Wordpress安裝在銀色條紋安裝的子目錄中。由於重寫,我無法讓Wordpress網站的前端顯示,但是如果我添加/index.php,則後端不會出現問題。htaccess - Wordpress裏面Silverstripe

如果我嘗試將/index.php附加到/subdirectory/index.php,它將重定向回子目錄。 WP htaccess中沒有規則,所以我認爲Silverstripe不喜歡擴展。

我試圖重寫引擎後添加此的Silvestripe現場排除整個子目錄文件夾:

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

沒有得到它的權利。有沒有辦法讓'子目錄'做自己的事情?

回答

1

重寫規則也適用於子文件夾。如果不在的WP子文件夾中有.htaccess,則應該爲該文件夾創建一個並禁用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>