Intereting Posts
Как переместить многострочный WordPress? Проверьте, существует ли проблема на странице Как определить, находится ли я на первой странице разбивки на страницы? Использование pre_get_posts для фильтрации по пользовательским полям при использовании статической главной страницы возможно ли получить имя крюка в add_action? Пользовательская тема updater – случайная строка в новом названии темы WP_Query и разбиение на страницы на первой странице Как автоматически импортировать внешние изображения в Upload Фильтр wptexturize не работает на старых заголовках сообщений автоматический заголовок через фильтр Как конвертировать контактную форму 7 в сообщение после отправки? Как разбить цикл на несколько столбцов Изменен обработчик PHP для DSO – проблема с настраиваемыми полями Проблема с подключаемым подзаголовком WP Архив CPT и отдельная страница не работают

Как удалить index.php в URL?

Я установил wordpress в подкаталог ( blog ). В корневом каталоге я установил Magento. Теперь каталог файлов выглядит следующим образом:

 app downloader includes media .... blog/wp-admin 

Мой сервер – nginx . Когда я устанавливаю URL-адрес в параметрах Permalink wordpress для:

 http://www.example.com/blog/index.php/sample-post/ 

… все сообщения доступны. Теперь я хочу удалить index.php из этого URL-адреса. Как мне это сделать? Когда я устанавливаю настраиваемую структуру …

 http://www.example.com/blog/sample-post/ 

… URL-адреса не разрешены WordPress, и я получаю 404.

Solutions Collecting From Web of "Как удалить index.php в URL?"

Поместите этот код в файл functions.php

  add_filter( 'got_rewrite', '__return_true', 999 ); 

Обновить:

Функция get_mod_rewrite () проверяет, является ли текущий сервер apache или не используется функция apache_mod_loaded () . Поскольку мы используем nginx, он возвращает false. Поэтому wordpress добавляет index.php в URL.

Используя фильтр got_rewrite, мы говорим wordpress, что мы переписываем на нашем сервере.

Проблема, вероятно, связана с настройками сервера в Nginx для вашего блога. Вероятно, правила местоположения для / blog / неправильны, в частности try_files. Он должен выглядеть так:

 location /blog/ { try_files $uri $uri/ /index.php$is_args$args; } 

Это указывает Nginx порядок, в котором он должен попытаться найти запрошенный ресурс. Сначала начнется попытка поиска точного объекта в URL-адресе. Если этого не существует, он попытается найти этот объект в качестве каталога. Если этого не существует, он передаст запрос index.php вместе с любыми аргументами или строками запроса, если они есть. Поскольку index.php в основном обработчике для WordPress, это заставит WordPress найти запрашиваемую страницу или сообщение на основе ваших правил перезаписи.

Прекрасная вещь в этой конфигурации заключается в том, что теперь вы можете изменить свою структуру permalink на все, что поддерживает WordPress, не изменяя ваши правила Nginx. Это также рекомендуемый метод использования явных правил перезаписи в Nginx.