2010-07-22 57 views
4

我一直試圖在我的htaccess中使用RewriteMap指令進行簡單映射,但由於某種原因,我每次都會收到錯誤500。我的語法是.. 選項+的FollowSymLinksRewriteMap不能在mod-rewrite中工作

RewriteEngine on 
RewriteBase/
RewriteMap name2id txt:nklist.txt 
RewriteRule ^/name/(.*) /name_list_view.php?kid=${name2id:$1|NOTFOUND} 

在nklist.txt:

1 David 
2 Mark 
3 Simon 

的nklist.txt文件是在我的網站,其中htaccess的是同一個地方的根。至於我的調試告訴我,htaccess無法找到nklist.txt文件,但任何幫助將感激。

回答

7

根據您的描述,您試圖通過您的.htaccess文件在每個目錄中定義一個RewriteMap文件,但這是不允許的。 RewriteMap只能在每個服務器上下文中定義,無論是在主服務器配置還是在虛擬服務器部分。

向服務器發出請求並解析文件.htaccess時,會遇到RewriteMap指令併發出警報,從而導致引發500錯誤。您可能會在您的error_log中看到一個條目,指出「此處不允許使用RewriteMap」。

+0

感謝您的回答,, 所以你的意思是我必須將txt文件移動到服務器文件夾的某處? 我的根路徑是 /home/mobilevi/public_html 你在哪裏推薦我應該放置我的地圖文件? – Wasim 2010-07-22 06:53:02

+0

不,這不是你的txt文件的問題,只是你不能在'.htaccess'中使用'RewriteMap',因爲它是不允許的。您必須將其設置爲服務器配置,除非您完全控制服務器,否則您可能無法完成此任務。你在共享主機上,還是你自己控制服務器? – 2010-07-22 07:11:08

+0

對不起,我想知道你的答案,現在得到了點,我在共享主機,但我也有我自己的server.thanks的答案雖然 – Wasim 2010-07-22 07:26:16

相關問題