Правило .htaccess
RewriteRule . /index.php [L]
означает, что URL-адреса, которые не соответствуют именам файлов в дереве документа, будут вызывать index.php. index.php в конечном итоге вызовет WP :: parse_request (). Эта функция проанализирует URL-адрес и сгенерирует запрос к базе данных, чтобы найти записи или страницы, которые соответствуют URL-адресу. Это довольно сложный алгоритм. parse_request () попытается сопоставить URL со своими правилами перезаписи. Если совпадение найдено, он создаст запрос к базе данных для извлечения совпадающих постов или страниц. parse_request () находится в файле ... / wp-includes / class-wp.php - вы можете прочитать его сами, но это нелегко - я понял это однажды, но забыл детали.
ADDENDUM
Я прочитал код и снова понял его. Это не так сложно. WordPress имеет базу данных правил перезаписи в таблице wp_options с параметром option_name "rewrite_rules". Правило перезаписи выглядит следующим образом:
[(.?.+?)(?:/([0-9]+))?/?$] => index.php?pagename=$matches[1]&page=$matches[2]
Оно отображает регулярные выражения в шаблоне URL. Это конкретное правило относится к страницам (на моем сайте другой веб-сайт может иметь другое правило)
URL http://localhost/tablepress-test/ соответствует этому правилу с массивом совпадений:
$matches=Array
(
[0] => tablepress-test
[1] => tablepress-test
)
parse_request() переписывает URL-адрес с использованием шаблона URL-адреса для:
index.php?pagename=tablepress-test&page=
parse_request (), а затем создает запрос к базе данных с помощью:
[query_vars] => Array
(
[page] =>
[pagename] => tablepress-test
)