为什么我的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文件夹中。
答案 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]