2011-05-22 114 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] 
相关问题