2012-08-13 184 views
3

所以我把它重寫爲.html給.php,但是當它需要時它不會加載.html文件。有沒有辦法讓它忽略書店目錄?我以爲我已經在那裏,但它不起作用。.htaccess允許.html

/public_html/.htaccess 
Options +FollowSymlinks 
DirectoryIndex index.php index.html index.htm 
RewriteEngine on 
RewriteCond %{REQUEST_URI} "/bookstore/" 
RewriteRule ^(.+)\.html$ http://virtualbookworm.com/$1.php [L] 
ErrorDocument 404 /error.php 

../bookstore/.htaccess 
Options +FollowSymlinks 
DirectoryIndex index.php index.html index.htm 
Options +Indexes 
ErrorDocument 404 /error.php 

回答

3

要忽略書店的目錄,你在表達的前面需要一個!

RewriteCond %{REQUEST_URI} !/bookstore/ 

或者,你可以打開重寫引擎在bookstore目錄htaccess的文件,並在規定的文檔根目錄將被所取代:

../bookstore/.htaccess 
Options +FollowSymlinks 
DirectoryIndex index.php index.html index.htm 
Options +Indexes 
ErrorDocument 404 /error.php 
RewriteEngine On 

此外,http://virtualbookworm.com在規則的目標納入會導致瀏覽器(使用302響應)重定向,它會在更改URL地址欄。如果這不是你想要的,只需將其刪除:

RewriteRule ^(.+)\.html$ /$1.php [L] 
1

嘗試

RewriteCond %{REQUEST_URI} "/bookstore/" 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)\.html$ http://virtualbookworm.com/$1.php [L] 

RewriteCond %{REQUEST_FILENAME} !-f應請求進行過濾出來,所以僅應用於規則如果「要求」文件不存在。

+2

注意,'!-f'告訴mod_rewrite忽略任何實際存在的文件並將它們從重寫中排除。 – 2012-08-13 19:25:28

+0

@MarcB:剛剛添加這個:)謝謝指出:) – 2012-08-13 19:28:27