После перенаправления правил перезаписи, как WordPress может знать страницу?

Я искал некоторые конфигурации .htaccess, фильтров и перехватчиков, чтобы иметь возможность управлять внутренним uri сайта. Целью было вход в систему, регистрация и администрирование страниц через SSL, а также все другие страницы через HTTP.

Хотя это может быть легко, когда у вас есть тот же домен для обоих, http и https, это может быть довольно сложно, когда домен отличается, и даже PATH отличается (например: HTTP на mydomain.com/blog и HTTPS на mydomain .sslserver.com).

Ни этот вопрос ( использование другого домена для SSL ), ни плагин HTTPS не помогли достичь этой цели с успехом. По этой причине я начал делать свою собственную настройку, используя другую информацию.

Проблема в том, что я очень новичок в коде WordPress и пытаюсь выяснить, как работает перенаправление, я застрял без понимания внутреннего перенаправления WordPress.

Затем, мой вопрос: если RewriteRule не передает PATH постоянной ссылки (например, путь к сообщению или категории) и только переписывает в /index.php, как этот файл может «знать», который является запрашиваемая почта или категория?

Я предположил, что в какой-то части кода потребуется где-то использовать $ _SERVER ["REQUEST_URI"] или $ _SERVER ['REQUEST_URI'] или $ _SERVER ['ORIG_PATH_INFO'], так как он работает, не преобразовывая PATH permalink в QueryString и без отправки каких-либо данных POST или GET.

Пожалуйста, я искал какой-то учебник, рассказывающий, что происходит, и ничего не нашел с ясным и понятным объяснением. Может быть, слишком много страниц с близкой информацией, и Searcher не показывает мне правильную страницу, может быть, я не ищу ее правильно, но мне действительно нужно знать, как она работает.

Благодаря!

Solutions Collecting From Web of "После перенаправления правил перезаписи, как WordPress может знать страницу?"

Я буду расширять свой вопрос с дополнительной информацией для лучшего понимания. В папке / testting / (каталог блога). Основной .htaccess показывает:

RewriteBase /testting/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /testting/index.php [L] 

Как только вызывается «www.domain.tld / testting / 2014/07 / hello-world /», он переписывает «/ testting / 2014/07 / hello-world /» на «/testting/index.php», но не передать '2014/07 / hello-world /' в качестве запроса; как другие правила .htaccess будут делать -> как пример:

 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 [L] 

По этой причине я не понимаю, как «index.php» может знать PATH '2014/07 / hello-world /' (сообщение в этом случае). Вот почему я предположил, что WordPress использует $ _SERVER ['REQUEST_URI'] или $ _SERVER ['ORIG_PATH_INFO'] где-то. Потому что '2014/07 / hello-world /' не передается через POST или GET (не так ли?).

Прежде чем начинать изучать работу крючков и фильтров, мне нужно решить эту основную проблему. Однако, как я сказал в самом начале, я не нашел никаких документов, рассказывающих, что с ним происходит.

Еще раз спасибо!

Если я правильно понимаю, что вы ищете, это get_query_var( $var ) которые возвращают данный var, проходящий через процесс перезаписи.

http://codex.wordpress.org/Function_Reference/get_query_var

Вот список WordPress Query Vars

http://codex.wordpress.org/WordPress_Query_Vars

Для цели отладки вы можете получить список всех query_vars, используя:

 global $wp_query; var_dump($wp_query->query_vars); 

обновленный

Вставьте следующий код в wp-content/themes/your-theme/functions.php :

 // Trigger an hook just before the current template is loaded add_action('template_redirect','all_my_vars_152651'); function all_my_vars_152651 () { global $wp_query; var_dump($wp_query->query_vars); } 

Анализ URL-адреса запрашивается в файле wp-includes/class-wp.php . Магия происходит начиная с строки 148 в функции parse_request . Для постоянных $_SERVER['PATH_INFO'] стиля пути используется $_SERVER['PATH_INFO'] , для довольно постоянных ссылок используется $_SERVER['REQUEST_URI'] .