2013-04-09 131 views
-2

我在htaccess中有以下代碼。 #將這個下避免在WordPress中覆蓋htaccess

# BEGIN Wordpress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /wordpress/ 
RewriteRule ^index\.php$ - [L] 

# Add this line 
RewriteCond %{REQUEST_URI} !/document   [NC] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /wordpress/index.php [L] 

# Add these lines 
RewriteCond %{REQUEST_URI} !search\.php   [NC] 
RewriteCond %{REQUEST_URI} /document/([^/]+)/? [NC] 
RewriteRule .* /wordpress/search.php?id=%1  [L,NC] 

</IfModule> 
# END Wordpress 

管路/這些線(S)是其用於任何URL重定向等http://example.com/document/123http://example.com/search.php?id=123我的自定義代碼。

現在我想修改此代碼,以避免我的自定義規則在更新/安裝WordPress /插件後被WordPress重寫。

我該如何做到這一點?

回答

2

只需將第二個附加塊移至WordPress部分之前即可。重寫規則中的[L]標誌應防止評估任何其餘條件和規則。你不需要你的第一個添加的行。

# Your additions 
<IfModule mod_rewrite.c> 
RewriteCond %{REQUEST_URI} !search\.php   [NC] 
RewriteCond %{REQUEST_URI} /document/([^/]+)/? [NC] 
RewriteRule .* /wordpress/search.php?id=%1  [L,NC] 
</IfModule> 

# BEGIN 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> 
# END Wordpress