У меня есть htaccess файл и поисковая система разбиения на страницы, это моя форма поисковой системы
<form class='fright' method='get' action='hasil_cari=' onsubmit="return false;">
<input class='srcText' style='padding:6px;'type='text' name='keyword'>
<input class='submit' style='padding:5;' type='submit' value='find' onclick="window.location.href=this.form.action + this.form.keyword.value;">
</form>
это мой RewriteRule для чистого URL-адреса
RewriteRule ^admin/keyword=(.*)-page=(.*)$ admin/index.php?h=home&m=find&keyword=$1&p=$2 [L]
затем я нажимаю страницу 2, но "-page = 2" читается как ключевое слово, поэтому появляется сообщение об ошибке, которое я создал
в адресной строке моего браузера: localhost/project/admin/keyword=....-page=2
"не удается найти данные =..... -page 2"
любой может решить это?
.*
Соответствует любому символу, 0 или более раз.
Вы можете указать игнорировать -
символ, используя [^-]*
(квадратные скобки означают диапазон, символ каретки в начале диапазона означает "не соответствую этим"), так что -page
часть вашего URL-адрес не попадает под часть ключевого слова:
RewriteRule ^admin/keyword=([^-]*)-page=(.*)$ admin/index.php?h=home&m=find&keyword=$1&p=$2 [L]
Кроме того, если вы хотите только сопоставить числовые номера страниц, вы можете сделать это:
RewriteRule ^admin/keyword=([^-]*)-page=([0-9]*)$ admin/index.php?h=home&m=find&keyword=$1&p=$2 [L]