2016-08-26 2 views
-1

У меня есть этот сайт, с этой структурой: http://example.com/dir/index.php?first=12&second=16. Теперь, я хочу отредактировать эту ссылку на: http://example.com/dir/12/16.Как переписать ссылку с помощью «.htaccess» с двумя параметрами?


Итак, я ставлю .htaccess в http://example.com/dir/; есть содержание:

RewriteEngine On 
RewriteRule ^([0-9]+)$ ?first=(\d+)&second=(\d+) 

Я использовал этот простой PHP для проверки, который помещается в http://example.com/dir/:

<?php 

/* ... */ 

echo $_GET['first'] . ' - ' . $_GET['second']; 

/* ... */ 

?> 

Когда я иду в http://example.com/dir/1/2, он возвращает: 404. Итак, мой .htaccess не работает так, как я хочу.


Что не так с моим .htaccess?

+1

У вас есть только 1 группа захвата, и ваш путь 'search.php? Month = 12 & day = 16', а не все числа. – chris85

+1

у вас только 1 группа захвата, так как у вас есть 2 переменные? –

+0

Возможно 'search \ .php \? Month = (\ d +) & day = (\ d +)'. Какое сообщение об ошибке? – chris85

ответ

0

Места этого .htaccess в http://example.com/dir/:

RewriteEngine On 
RewriteRule ^([0-9]+)/([0-9]+)/?$ ?first=$1&second=$2 

Это просто.

1

Вы должны использовать 2 захвата gropus для шаблона RewriteRule или не будет второй переменной т.е. $2

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^dir/([0-9]+)/([0-9]+)/?$ /dir/index.php?month=$1&day=$2 [L] 
+0

Ну, вы можете принять мой ответ, так как он приведет вас к решению вашей проблемы. –

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