2009-10-12 113 views
0

我使用的是Wordpress,並且有以下固定鏈接/%category%/%postname%。 這給了我用戶友好的網址,如http://www.example.com/something/需要幫助使用.htaccess重寫規則

有了這個固定鏈接,我將無法直接訪問php文件,例如http://www.example.com/something/myfile.php

我需要編寫一個ReWrite規則,允許我訪問/include/myfile.php。 可以幫助我嗎? :)

這是我目前的.htaccess文件:

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

更新

好吧,我得到它的工作。

我從一開始就做錯了。我正在使用「虛擬」路徑而不是物理路徑。

相反/mysite/includes/myfile.php的,我必須使用/wp-content/themes/mytheme/include/myfile.php

我很可能也開始加入的RewriteCond%{REQUEST_URI}!MYFILE .php,這會從重寫規則中排除myfile.php。我還沒有測試過。

+0

嘗試使用mod_rewrite的日誌記錄進行一些調試(請參閱RewriteLogLevel)。 – Gumbo 2009-10-12 07:54:53

+0

完成。更新以上文本 – Steven 2009-10-12 09:51:23

+0

根據日誌,'/ include'不是一個目錄。或者是? – Gumbo 2009-10-12 09:58:00

回答

1

那麼,你的重寫規則看起來不錯。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

意味着,如果%{REQUEST_FILENAME]是一個物理文件或目錄/blog/index.php將不被服務器D。

更多信息here

您確定您使用的是正確的文件路徑嗎?

要請求的文件應位於/blog/include/myfile.php中。

檢查您的error.log apache的任何相關消息。

+0

但是不是說「這些規則的基礎是/ myblogdirectory /」。如果一個whatever.php文件被請求,向/myblogdirectory/index.php發送「?(我已經更新了代碼。) – Steven 2009-10-12 07:12:43

+0

PS。這是一篇關於理解WordPress的永久鏈接的好文章:http://www.homebizpal .COM /博客/ WordPress的/理解 - WordPress的 - 永久鏈接/ – Steven 2009-10-12 07:14:05