2010-07-29 90 views
1

我試圖用很多方式做到這一點,但我真的無法從.htaccess中的wordpress重寫規則中排除目錄「進度」。我發現了很多解決方案,但他們似乎都沒有工作。 的.htaccess在WP的根目錄中包含:無法從重寫規則中排除目錄

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

</IfModule> 

# END WordPress 

我試圖用

RewriteCond %{REQUEST_URI} !^/(progress/.*)$ 

RewriteRule ^progress($|/) - [L] 

RewriteCond %{REQUEST_URI} !^/?(admin|progress)/ 

,我甚至試圖把別名/ progres s/home/website /進入httpd.conf,但仍無法正常工作。當然,mod_rewrite已安裝並正在運行,它將我重定向到index.php,當我嘗試訪問目錄時,它顯示404錯誤...

回答

1

目錄progress是否確實存在?它裏面有什麼?

您將您提供的代碼放在.htaccess的上下文中的哪個位置?

RewriteCond %{REQUEST_FILENAME} !-d將意味着如果請求轉換爲真實目錄,則重寫規則將被忽略。

2

正確使用時,您的兩次嘗試都應該可以正常工作。由於規則是按順序進行測試,你需要把例外的情況下,現有的WordPress規則的前面:

RewriteRule ^progress($|/) - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

或者使用附加條件時(以及OK,條件這裏的順序並不重要,因爲他們所有必須滿足):

RewriteCond %{REQUEST_URI} !^/(admin|progress)/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
3

here

#Change 
RewriteRule . /index.php [L] 

#to: 
RewriteRule ./ /index.php [L] 
0

,而不是按照上的.htaccess的

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

</IfModule> 

# END WordPress 

使用要由WordPress的htaccess的規則爲RewriteBase排除該文件夾的名稱,所以基本上嘗試寫作按照該文件夾的.htaccess文件「FOLDER_NAME 「

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

</IfModule> 

# END WordPress 

並將此.htaccess文件放入名稱爲」FOLDER_NAME「的文件夾中。請讓我知道這是否有效。