Как удалить index.php из постоянных ссылок [WordPress on Composer] - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть локальный сервер, на котором я запускаю WordPress с Composer.

После миграции базы данных из моей локальной системы в AWS RDS постоянные ссылки изменили свое поведение: теперь в начале тегов есть index.php, например:

http://example.com/index.php/name-of-page

Кроме того, в wp-admin-> Settings-> Permalinks структура теперь настраивается:

/ index.php /% год% /% monthnum% /% день% /% postname% /

Подробная информация о моем локальном сервере:

  • Xubuntu 18
  • Apache2
  • AllowOverride All для / и var/www/
  • это на Composer, с пользовательским каталогом (wp-контент отделен от ядра wp)
  • .htaccess:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /project/public/wp/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /project/public/wp/index.php [L]
    </IfModule>
    
    # END WordPress
    

Что я пробовал:

http://dejanjanosevic.info/remove-index-php-permalink-in-wordpress/

http://derekmolloy.ie/remove-index-php-from-your-wordpress-url/

  • обновление постоянных ссылок
  • обновление композитора
  • продажа моей души сатане

Каковы результаты?

Modyfying .htaccess не имеет никакого эффекта - просто заканчивается 404, единственными работающими ссылками по-прежнему являются те, которые включают /index.php/. Обновление постоянных ссылок из WordPress дает тот же результат.

У меня заканчиваются идеи.

1 Ответ

0 голосов
/ 06 сентября 2018

Я понял.

Для тех, кто ищет решение той же проблемы, вот руководство:

  1. Измените настройки постоянной ссылки в wp-admin на довольно постоянные ссылки
  2. Установить модуль mod_rewrite в apache
  3. Самая важная часть в etc / apache / apache2.conf (ЗАМЕТЬ, ЧТО ВЫ ДОЛЖНЫ ИЗМЕНИТЬ ИМЯ ПАПКИ):

    <Directory />
        Options FollowSymLinks
        AllowOverride All
        Require all denied
     </Directory>
    
     <Directory /usr/share>
        AllowOverride None
        Require all granted
     </Directory>
    
     <Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
     </Directory>
    
     #<Directory /srv/>
     #  Options Indexes FollowSymLinks
     #  AllowOverride None
     #  Require all granted
     #</Directory>
    
     <Directory "/var/www/html/NAME_OF_YOUR_PROJECT_FOLDER">
     Options FollowSymLinks
     AllowOverride All
     </Directory>*
    
    1. Перезапустить apache
...