Почему этот файл htaccess вызывает ошибку 500 в Apache? - PullRequest
1 голос
/ 22 мая 2011

Почему мой файл htaccess вызывает ошибку 500?

Я пытаюсь получить его, поэтому, когда кто-нибудь вводит http://www.example.com/24, он запускает сценарий для «ключа» 24, но сервер читает http://www.example.com/?key=24.

PHP-скрипт на index.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';


}
?>

код доступа:

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 ]

1 голос
/ 22 мая 2011

Попробуйте это:

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

В любом случае ваши текущие правила не должны вызывать код состояния 500, если mod_rewrite не включено.

Редактировать: Я только что заметил, что вы пишете это htaccess по всему вопросу.Правильное имя .htaccess (обратите внимание на начальную точку).

1 голос
/ 22 мая 2011

Ошибка в ваших слешах

RewriteEngine On  
RewriteRule ^([a-zA-Z0-9_-]+)\/index$ index.php?key=$1  
RewriteRule ^([a-zA-Z0-9_-]+)\/index$ index.php?key=$1 
0 голосов
/ 22 мая 2011

Это может повторять правила снова и снова.Всегда добавляйте [L], если вы не хотите, чтобы правила обрабатывались дальше.

Кроме того, как отмечает Альваро, вам не нужна часть / index:

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