Так что на самом деле идентификатор записи и заголовок в URL-адресе, но они будут использовать только идентификатор записи. Название не очень подходит, так как могут быть повторяющиеся записи (одинаковые заголовки, разные идентификаторы), изменения заголовков и т. Д. Для URL этого вопроса:
/questions/5142095/pretty-urls-for-web-application
Чтобы решить это:
/single.php?id=5142095
Правило перезаписи будет:
RewriteRule ^questions/([0-9]*)/(.*)$ /single.php?id=$1
То, что это ищет, - это начало uri (после домена) ^
, слово questions
, любая длина чисел `[0
Это выглядит для:
^
начало URI
- слово
questions
- косая черта
/
- переменная длина чисел
[0-9]*
(например, 1, 123, 1234 и т. Д.)
- косая черта
/
- любая длина любого символа
.*
(т. Е. Заголовок вопроса)
$
конец URI
Когда совпадение символов (например, [0-9] * или. *) Заключено в скобки, mod_rewrite помещает результат совпадения в пронумерованную переменную доллара. В приведенном выше правиле [0-9]*
соответствует любому числу (и любой длине чисел) и помещает его в $1
. Второе совпадение .*
соответствует любой длине любого символа и помещает совпадение в $2
.
Ваша заявка получит URI справа от правила, с долларовыми переменными, замененными на совпадения.