Подтвердить что ты не робот

Wordpress permalinks не работает - htaccess выглядит нормально, но при этом возникает ошибка 404 на страницах

Я обновил структуру permalink до /% postname%/, и это обновило мой .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

Но я все еще получаю 404 ошибки на страницах. Есть ли другие настройки, которые мне нужно изменить?

Изменить: если это помогает, то Apache-журнал, кажется, смотрит прямо в постоянную папку. То есть:.

[Wed Oct 16 11:12:32 2013] [error] [client xx.xx.xx.xxx] File does not exist: /var/www/exampledomain/news, referer: http://exampledomain.com/
4b9b3361

Ответ 1

Для других людей, приземляющихся на этой странице - Другая проблема может быть (если вы используете Apache в качестве своего веб-сервера), вам нужен файл httpd.conf или файл, доступный для вашего сайта /sitename.conf.

Ваш веб-каталог должен будет разрешить файлу .htaccess переопределять его параметры.

найдите свой веб-каталог в файле - он будет в основной части файла conf или отделен в разделе VirtualHost.

<Directory /path/to/site>
     #add the following setting to allow .htaccess in your web dir to work
     AllowOverride FileInfo

     #other settings ---

</Directory>

Это позволит вам настроить URL-адреса WordPress, но вы хотите, в WordPress.

*** Отредактировано - Спасибо. nietonfir Для обновления. Сначала используйте наименьшее количество привилегий. Если это не сработает, замените AllowOverride FileInfo на AllowOverride All

Ответ 2

Могут быть несколько факторов, препятствующих работе правила перезаписи. Мой сервер ubuntu нуждался в 3 вещах, чтобы получить постоянную ссылку.

В новых версиях apache2 вам нужно включить модуль:

sudo a2enmod rewrite
sudo service apache2 restart

Вам также может потребоваться изменить файл apache2.conf.

sudo nano /etc/apache2/apache2.conf

Измените правило переопределения веб-каталога на AllowOverride All.

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

После этого перезапустите службу еще раз.

Файл .htaccess в каталоге установки WordPress должен быть доступен или доступен для чтения/модификации веб-сервером.

Это можно сделать, изменив владельца на www-data (обычно пользователь веб-сервера) или изменив разрешения.

sudo chown www-data /var/www/wordpress-install/.htaccess 

ИЛИ

sudo chmod 664 /var/www/wordpress-install/.htaccess

Войдите в свой бэкэнд администратора Wordpress и сохраните настройки постоянной ссылки, и они, надеюсь, будут работать.

Ответ 3

Это теперь разрешено. Я не включил mod_rewrite. Поэтому я сделал это:

$ sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
  service apache2 restart
$ service apache2 restart
 * Restarting web server apache2                                                                              

Ответ 4

используйте ниже .htaccess код, просто поместите свое имя проекта (которое находится в каталоге www) ниже кода

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

# END WordPress

Спасибо

Ответ 5

Вы хотели бы сказать apache, чтобы он выполнил ваш файл.htaccess. Вы можете сделать это, отредактировав файл apache.conf

$sudo nano /etc/apache2/apache.conf

Прокрутите вниз до строки По умолчанию это будет:

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

измените значение AllowOverride на All, так что теперь оно становится:

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

Нажмите ctrl + x и нажмите y, чтобы сохранить файл конфигурации. Чтобы сделать это изменение на сервере, сначала включите mod_rewrite.

$ sudo a2enmod rewrite

Затем перезапустите сервер

$ sudo service apache2 restart

Готово!

Источник: https://www.wst.space/riddling-with-wordpress-permalink-setup-issues/

Ответ 6

Если вы настроили новый или клонированный сайт на ubuntu, не забудьте символизировать файл конфигурации сайта, например. /etc/apache2/sites-available/your-file.conf в папку /etc/apache2/sites-enabled, так что apache загружает ее.


Просто запустите: sudo a2ensite your-file.conf, затем sudo service apache2 reload.

sudo a2dissite your-file.conf, чтобы удалить symlink i.e. отключить конфигурацию.

Ответ 7

Я столкнулся с той же проблемой и имел еще одну вещь, которую нужно искать.

Вот что вам нужно для правильной работы wordpress:

  • Убедитесь, что у вас есть соответствующие режимы разрешений для файлов и папок в вашем каталоге wordpress:
    sudo find . -type f -exec chmod 644 {} +
    sudo find . -type d -exec chmod 755 {} +

  • Для структуры permalink убедитесь, что mode_rewrite включен в apache:
    sudo a2enmod rewrite
    sudo service apache2 restart

Ответ 8

Пользователи WAMP (Windows). Некоторые версии WAMP (все версии?) не включают mod_rewrite или разрешают использование SymLinks по умолчанию. Чтобы включить необходимые функции, перейдите к apache/conf/httpd.conf file, откройте текстовым редактором и раскомментируйте строку LoadModule rewrite_module modules/mod_rewrite.so(т.е. Удалите знак хеша/фунта в передней части строки). Затем далее в том же файле находится раздел, который начинается с строки " Параметры FollowSymlinks". Измените вторую строку в этом разделе с "AllowOverride none" на AllowOverride all. Сохраните отредактированный файл httpd.conf и перезапустите все модули WAMP. Ваши постоянные ссылки теперь должны работать.

Подробнее об устранении проблем Permalink

Ответ 9

Еще одна возможность: я только что обновил свой macOS, который всегда закручивает конфигурационный файл Apache. Помимо прочего, мне также пришлось снова включить модуль mod_rewrite. Найдите строку, которая говорит:

#LoadModule rewrite_module libexec/apache2/mod_rewrite.so

И удалите хэш, чтобы он сказал:

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Ответ 10

Еще одна вещь, чтобы проверить, описывает ли это вашу проблему:

  • htaccess и mod_rewrite настроены правильно
  • 404 на некоторых постоянных ссылках, но не на других

Убедитесь, что в файлах или каталогах нет.php файлов в той же папке, что и ваша Wordpress, с именами, соответствующими постоянной ссылке Wordpress.

Например, если у вас есть следующие страницы в Wordpress:

 example.com/name_one/
 example.com/name_two/

и каталог, содержащий вашу установку Wordpress, включает следующий файл:

 name_one.php

то это будет результат:

Что еще более важно, второй URL-адрес даст 404 вместо запуска name_one.php, что означает, что эта проблема трудно диагностировать, так как она может давать те же симптомы, что и неправильно написанный файл.htaccess.