2013-09-26 6 views
4

Я просто переехал Wordpress сайт на новый хост. Но когда я иду на любую страницу, кроме домашней страницы, я получил эту ошибку:Wordpress permalink 'не найден на этом сервере'

Not Found 

The requested URL /about was not found on this server. 

Apache/2.2.16 (Debian) Server at 176.xx.yy.zz Port 80 

Я изменил Пермассылку установки на умолчанию, что делает URL выглядит mysite.com/?page_id=5 и на странице появляется штраф. Поэтому проблема не в моем коде.

Моя первая догадка mod_rewrite не включена. Но phpinfo() сообщает мне, что mod_rewrite загружен правильно.

Мой .htaccess генерируется автоматически и выглядит следующим образом:

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

Любое решение?

Благодаря

ответ

7

Вам нужно отредактировать файл Apache http.conf и

изменения #LoadModule rewrite_module modules/mod_rewrite.so

к LoadModule rewrite_module modules/mod_rewrite.so

В версиях Apache2, где http.conf больше нет (т.е. убунту) вы можете использовать команду a2enmod rewrite для включения модуля.

+0

Спасибо за ответ. Если 'mod_rewrite' отображается на' phpinfo() ', он уже должен быть раскоментирован правильно? Я не могу проверить 'http.conf', потому что у меня нет доступа к нему. – hrsetyono

+0

Да, его нужно расколоть ... –

+0

Хорошо, спасибо большое – hrsetyono

2

Я считаю, что это может быть и из-за этих трех проблем.

  1. AccessFileName .htaccess прокомментирован в вашей конфигурации apache.
  2. AllowOverride ALL не указан в вашей конфигурации apache для пути wordpress.
+0

Для Apache 2.4.6 'AllowOverride None' - это то, что указано в httpd.conf.Я изменил его на 'AllowOverride All', и permalinks начали работать. – eclipsis

0

Это может быть проблема с путями, определенными в правиле переписывания

Рассмотрим изменение следующих в правилах перезаписи в файле .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 

что работал для меня.

0

Это просто запустите:

shell > a2enmod rewrite enable 

Если вы работаете на apache2.

1

Предполагая, что ваш файл .htaccess на месте, это, скорее всего, вызвано тем, что модуль перезаписи Apache не включен на вашем новом сервере. На Ubuntu сделайте так:

sudo a2enmod rewrite 
sudo apache2ctl restart 
Смежные вопросы