2016-02-05 2 views
1

Моего файла .htaccess просто:.htaccess переписывает, но не захватывает

RewriteEngine On 
RewriteRule ^([0-9]+)/?.*$ view.php?id=$1 [L] 
RewriteRule ^delete/([0-9]+)/?$ delete.php?id=$1 [L] 

Первое правило работает отлично. Когда я перехожу к http://userless.net/123, запрос отправляется в view.php, и я могу получить доступ к id с помощью $_GET['id']. Второе правило также отлично переписывает, оно отправляет http://userless.net/delete/123 в delete.php, но идентификатор не записывается !!! $_GET['id'] нет даже комплект. Как они могут быть такими похожими, и все же одна работа, а другая неудача? Что мне не хватает?

+0

Как об этом:^удалять/([0-9] +) /?.*$ –

ответ

1

Это больше похоже на вариант MUltiViews, включенный по умолчанию. Вы можете отключить его с помощью этого:

Options -MultiViews 
RewriteEngine On 

RewriteRule ^([0-9]+) view.php?id=$1 [L,QSA] 

RewriteRule ^delete/([0-9]+)/?$ delete.php?id=$1 [L,QSA,NC] 
+1

Это было, блин MultiViews ... спасибо! – Sophivorus

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