Является ли WordPress SEO дружественный URL работает без использования htaccess? - PullRequest
2 голосов
/ 27 ноября 2010

Wordpress использует дружественный URL-адрес SEO без использования htaccess.

Может кто-нибудь объяснить мне, пожалуйста, как они это делают.

Единственный способ, которым я могу придумать, - это сделать что-то подобное.

domain.com / index.php / NNN / мммм /

Но WordPress не использует index.php

Я знаю, что они не используют htaccess.

Пожалуйста, дайте мне знать.

Спасибо.

Ответы [ 4 ]

5 голосов
/ 27 ноября 2010

WordPress на самом деле имеет один файл .htaccess, который им не нужно менять, который перенаправляет все запросы в index.php

index.php, затем просматривает правила постоянных ссылок и запускаетнесколько запросов к базе данных, чтобы определить, какую страницу вам отправить.

Так, например, если правило постоянной ссылки %postdate%/%postname% (возможно, это не фактические переменные постоянной ссылки WordPress. Я не использовал WordPress слишком долго)тогда он просто использовал бы регулярные выражения (или комбинации substr() и strpos()), чтобы поместить %postdate% и %postname% в переменные.Затем он выполняет простой запрос к базе данных для любого элемента, соответствующего этой дате и этому имени.Если ничего не найдено, перенаправьте на поиск.Если вы найдете более одного, перечислите их все (например, страницу категории).Если вы найдете одну и только одну, отправьте эту страницу.

Что касается фактической "отправки" страницы, это просто вопрос настройки определенных переменных (таких как $the_post['content']), а затем include() 'ingправильный файл темы.

include() Использование файла темы - это простое выражение if().

if(file_exists("wp-content/themes/<your_theme>/$the_post['type'].php")){
    include("wp-content/themes/<your_theme>/$the_post['type'].php");
} else {
    include("wp-content/themes/<your_theme>/index.php");
}

Имейте в виду, что это не точные имена переменных или точные функциикак они происходят.Это просто очень упрощенная версия, чтобы дать общее представление о том, как работают эти системы.

0 голосов
/ 15 июля 2014

Чтобы ответить на главный вопрос:

номер

Что касается других ваших пунктов:

Wordpress использует дружественный SEO-URL без использования htaccess.

ОБЫЧНО это не так.
ОБЫЧНО для работы хороших URL-адресов требуется .htaccess.
Однако , как говорит Кодекс Wordpress:

Если вы используете IIS 7 и у вас есть права администратора на вашем сервере, вы можете используйте взамен модуль перезаписи URL-адресов Microsoft . Хотя и не полностью совместим с mod_rewrite, поддерживает WordPress красивые постоянные ссылки.

Так что они всегда используют какой-то модуль перезаписи , в любом случае.

Может кто-нибудь объяснить мне, пожалуйста, как они это делают.


Есть одна интересная вещь , чтобы объяснить:

  • Существует только один файл .htaccess.
  • Что было бы не так интересно, если бы в нем содержались какие-то общие правила переписывания URL-адресов для параметров GET some.php (domain.com/verynice => domain.com/index.php?page=verynice).
  • Но этого не происходит .

Что происходит, так это
Это переписывает ЛЮБОЙ URL, который НЕ является конкретным ФАЙЛОМ или КАТАЛОГОМ для index.php, КРОМЕ index.php (для предотвращения бесконечного цикла).

Таким образом, URL, такие как domain.com/blah/blah и domain.com/lol/trololo, фактически запрашивают index.php - единственная разница заключается в запрашиваемом URI .

Использование суперглобальных переменных подобно $_SERVER['REQUEST_URI'] они получают запрошенный URI и после этого они анализируют запрошенный URI и сохранить результаты в переменных соответственно .

Единственный способ, которым я могу придумать, - это сделать что-то подобное.

domain.com / index.php / NNN / мммм /

В общем объяснении URL это НЕ запрос к самому файлу index.php.
Это запрос к папке "mmmm" в папке "nnn", которая находится в папке "index.php".

Однако apache обычно понимает это как запрос к файлу index.php .

Для других файлов, например my.file domain.com/my.file - это запрос файла, domain.com/my.file/ - запрос к папке (обратите внимание на косую черту / в конце)

Но WordPress не использует index.php

То есть НЕ ИСТИНА .

Особенно , если вы используете nice-url, index.php практически фундаментален для Wordpress.

Я знаю, что они не используют htaccess.

Эта ваша точка зрения может означать 3 вещи:

  1. Они используют htaccess, но не для обработки URL (что я объяснил выше)
  2. Они его вообще не используют - не так, если только они не будут использовать MS 'Модуль перезаписи URL
  3. Вы не знаете. Вы не предоставили никакой информации о том, как вы узнали, что они не используют его, поэтому мы не можем знать, действительно ли вы это знаете или просто думаете, что:)

Пожалуйста, дайте мне знать.

Я дам тебе знать. И я надеюсь, что я ответил на все ваши вопросы :), если нет - используйте комментарии:)

Спасибо.

Добро пожаловать.

Я был рад помочь :) ☺ ☺ ☺ ☺ ☺

0 голосов
/ 27 ноября 2010

WordPress действительно использует .htaccess. Убедитесь, что у вас есть скрытые файлы отображаются! Если вы используете FTP, в вашем клиенте будет настройка.

0 голосов
/ 27 ноября 2010

Wordpress использует файлы .htaccess. Вы можете изменить постоянные ссылки в разделе постоянных ссылок вашего сайта WordPress. Вы можете увидеть информацию об этом здесь .

Если вы используете IIS, вы можете использовать этот метод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...