为什么这个htaccess文件在Apache中导致500错误?

时间:2011-05-22 19:30:02

标签: php apache .htaccess

为什么我的htaccess文件导致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 个答案:

答案 0 :(得分:1)

斜线错误

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

答案 1 :(得分:1)

试试这个:

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

在任何情况下,除非mod_rewrite未启用,否则您当前的规则不应触发500状态代码。

编辑:我刚刚注意到你在问题周围拼写了htaccess。正确的名称是.htaccess(注意前导点)。

答案 2 :(得分:0)

它可能会一遍又一遍地循环规则。除非您希望进一步处理规则,否则请务必添加[L]。

另外,正如Alvaro指出的那样,你不需要/ index部分:

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