2013-04-29 102 views
1

我使用的是GoDaddy Delux Hosting,Linux服務器。我在根目錄下安裝了wordpress。我已經在根目錄下啓動了一個開發目錄。我沒有在開發目錄下的wordpress安裝,但我自己的項目。Wordpress mod_rewrite例外的子目錄

我的目標是繞開開發目錄的wordpress url重寫,並將每個以開發目錄開頭的url重定向到development/index.php。我已經嘗試了很多mod_rewrite組合,但是我無法完成它的工作。我得到標準的WordPress「找不到網頁」頁面的一切,除了mysite.com/development/index.php

最後一個配置,我想出如下:

根目錄.htaccess文件:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !^/(development|development/.*)$ 
RewriteRule . /index.php [L] 
</IfModule> 

開發目錄的.htaccess文件:

RewriteEngine On 
RewriteRule .* index.php [L] 

任何想法如何最好的辦法呢?

PS:我沒有在Wordpress中使用「開發」作爲一個slu。。

+0

基於一個答案,一個[相關問題]( http://stackoverflow.com/questions/2550391/multiple-mod-rewrites-on-one-site-possible-wordpress-blog-in-root-directory),我哈哈在開發目錄.htaccess文件中添加了'RewriteBase/development /'這一行作爲第二行,它工作正常。我也試過@ doublesharp的答案,這也起作用。最後我使用了他的根目錄.htaccess,因爲他有一個更簡單的解決方案。 – Burak 2013-04-29 19:44:47

回答

4

在主.htaccess文件,你應該忽略在「發展」的東西 - 你不需要因爲RewriteBase /初始正斜槓,並可以使尾部斜槓可選帶?,並且沒有必要.*$

在該子目錄中,您將忽略任何不在重寫的子目錄中使用RewriteBase /development/將所有內容發送到/development/index.php,其中請求不是文件或目錄。

給下面的一個嘗試:

/.htaccess

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

/development/.htaccess

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