2013-11-29 3 views
1

на ubuntu 13.04 и apache2 и php 5.4 у меня ошибка 404. мод переписывают включен на моей машинеhtaccess и mod_rewrite ошибка перенаправления

мой .htaccess код выглядит так:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^/dl/([0-9]+)/$ dl.php?id=$1 
</IfModule> 

и dl.php настроен на просто эхо переменные:

<?php 
print_r($_GET); 
?> 

на выходе когда я перейду по этому адресу http://localhost/digidoc/dl/5, он показывает ошибку 404

ps: файл .htaccess, содержащийся в папке digidoc и в папке digidoc, находится у нас б корневых серверов

ответ

0

Вы должны избавиться от слэш:

Options -Multiviews 

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteBase /digidoc/ 
    RewriteRule ^dl/([0-9]+)$ dl.php?id=$1 [L,QSA] 
</IfModule> 

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

+1

спасибо! после добавления 'Options -Multiviews' это сработало !! –

1

Изменение

RewriteRule ^/dl/([0-9]+)/$ dl.php?id=$1 

В

RewriteRule ^/digidoc/dl/([0-9]+)/?$ dl.php?id=$1 

Обратите внимание на?, так что последний слэш не является обязательным. Также добавьте digidoc/, поскольку правило применяется ко всему URL-адресу.

+1

У меня такая же ошибка: запрошенный URL/digidoc/dl/5 не найден на этом сервере. –

+0

Какой адрес вы запрашиваете? 'http: // localhost/dl/5' или' http: // localhost/digidoc/dl/5'? –

+1

файл htaccess, включенный в папку digidoc, поэтому я вызываю 'http: // localhost/digidoc/dl/5', я должен сохранить .htaccess в корневой папке? –

Смежные вопросы