2011-05-22 87 views
1

爲什麼我的htaccess文件導致500錯誤?爲什麼這個htaccess文件在Apache中導致500錯誤?

我想知道它,所以當有人輸入http://www.example.com/24時,它將運行'key'24的腳本,但服務器讀取http://www.example.com/?key=24

上的index.php PHP腳本:

<?php include("scripts/config.php"); 
include("scripts/facebook.php"); 

if(isset($_GET['key'])){ 

$like_id=mysql_real_escape_string($_GET['key']); 

include_once 'like/index.php'; 

}else{ 

include_once 'home.php'; 


} 
?> 

的htaccess代碼:

RewriteEngine On 

RewriteRule ^([a-zA-Z0-9_-]+)/\index$ index.php?key=$1 

RewriteRule ^([a-zA-Z0-9_-]+)/\index$ index.php?key=$1 

也可以說,它是在那裏我救了我的htaccess的文件?目前它位於htdocs文件夾中。

+3

您是否有權訪問錯誤日誌?如果你這樣做,看那裏確切的錯誤消息 – 2011-05-22 19:31:31

+0

爲什麼你的.htaccess文件中有兩次相同的規則? – Arjan 2011-05-22 19:39:06

回答

1

試試這個:

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?key=$1 

在任何情況下,你目前的規則應該不會觸發500狀態碼,除非mod_rewrite未啓用。

編輯:我剛纔注意到,你在這個問題上拼出了htaccess。正確的名字是.htaccess(注意前導點)。

1

錯誤在你的斜線

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_-]+)\/index$ index.php?key=$1 
RewriteRule ^([a-zA-Z0-9_-]+)\/index$ index.php?key=$1 
+0

如果我是正確的,你甚至不需要轉義/,所以'RewriteRule ^([a-zA-Z0-9 _-] +)/ index $ index.php?key = $ 1'應該可以工作。 – Arjan 2011-05-22 19:38:16

+0

爲什麼模式中所有「索引」後綴都是必需的? – 2011-05-22 19:42:30

0

它可能通過規則一遍遍地循環。除非您想要進一步處理規則,否則請始終添加[L]。

此外,由阿爾瓦羅指出,你不需要/索引部分:

RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?key=$1 [L]