Удаление index.php из URL
Я установил WordPress в подкаталог /www/html/wordpress/ (а не в /www/html/), и решение, предложенное здесь Как избавиться от index.php, не сработало на этом сервере.
Решение предлагает добавить следующее в .htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
и изменить на 'AllowOverride ALL' в конфигурации Apache.
Решение сработало на моем другом сервере, где WordPress установлен в /www/html/, но не на этом. Вы знаете, почему так происходит и как я могу это исправить? (Похоже, мне нужно изменить приведенный выше код в .htaccess, но я не знаю как)

Войдите в админ-панель WordPress и перейдите в Настройки > Постоянные ссылки. В разделе Общие настройки выберите "Произвольная структура" и в текстовом поле введите /%postname%/
Нажмите "Сохранить изменения"
Второй шаг - создание файла .htaccess, который затем нужно загрузить в корневую директорию сайта WordPress.
Файл .htaccess должен содержать следующие правила:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*)$ /index.php/$1 [NC,L]
# для WordPress, установленного в поддиректорию blogs
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^wordpress/(.*)$ wordpress/index.php/$1 [NC,L]

В зависимости от ваших настроек стандартные записи в .htaccess будут выглядеть именно так, как показано в коде ниже. Если после активации одного из параметров, отличного от "По умолчанию" в разделе WordPress > Настройки > Постоянные ссылки, вы всё ещё не можете избавиться от index.php
, это означает, что стандартные записи WordPress не вступили в силу.
Убедитесь, что ваш файл .htaccess загружается при запуске Apache?
Как выглядит конфигурация Apache <virtualhost>
для директории, в которой установлен WordPress?
Стандартная запись WordPress в .htaccess после активации постоянных ссылок
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Если ничего не помогает, попробуйте добавить этот код в ваш файл .htaccess. Это не совсем решение проблемы, но добавление этого кода может вызвать ошибку, которая укажет вам на источник проблемы. Проверьте файлы журналов ошибок.
# Принудительное удаление index.php из запросов
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]*/)*index\.(php)(\?[^\ ]*)?\ HTTP/
RewriteRule ^(([^/]*/)*)index\.(php)$ /$1 [R=301,L]
