2016-03-28 1 views
0

Домашняя страница домашней страницы Wordpress работает хорошо, но mod_rewrite не работает. Итак, главная страница работает, но как только я нажимаю любую ссылку, я получаю Not Found.Как правильно активировать макет mod_rewrite?

выход Вход для этой ошибки:

[error] [client 127.0.0.1] File does not exist: /Applications/MAMP/htdocs/myweb/my-web-page-that-has-to-work, referer: http://myweb.dev/ 

Согласно моему пониманию, ошибка будет означать, что он выглядит для этой конкретной страницы, вместо того чтобы использовать mod_rewrite, чтобы карапуз получить страницу из базы данных.

httpd.conf релевантное содержание:

# Virtual hosts, uncommented include 
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf 

... 

# AllowOverride All is here 
<Directory "/Applications/MAMP/htdocs"> 
Options All 
AllowOverride All 
Order allow,deny 
Allow from all 
XSendFilePath "/Applications/MAMP/htdocs" 
</Directory> 

httpd-vhosts.conf релевантное содержание:

<VirtualHost *:80> 
DocumentRoot /Applications/MAMP/htdocs 
ServerName localhost 
</VirtualHost> 

<VirtualHost *:80> 
DocumentRoot "/Applications/MAMP/htdocs/myweb" 
ServerName myweb.dev 
ServerAlias www.myweb.dev 
ErrorLog "/private/var/log/apache2/myweb-error_log" 
CustomLog "/private/var/log/apache2/myweb-access_log" common 
</VirtualHost> 

Любой ключ о том, как заставить его работать?

ответ

1

Сначала убедитесь, что Apache загружает модуль. См: How to enable mod_rewrite for Apache 2.2

Затем добавьте в файле .htaccess в папке

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
</IfModule> 

или просто добавить его в свой HTTPd-vhosts.conf, как это. ИСПРАВЛЕНО:

<VirtualHost *:80> 
    DocumentRoot "/Applications/MAMP/htdocs/myweb" 
    ServerName myweb.dev 
    ServerAlias www.myweb.dev 
    ErrorLog "/private/var/log/apache2/myweb-error_log" 
    CustomLog "/private/var/log/apache2/myweb-access_log" common 


    <Directory "/Applications/MAMP/htdocs/myweb"> 
     AllowOverride All 
     Allow from all 

     <IfModule mod_rewrite.c> 
      RewriteEngine On 
      RewriteBase/
     </IfModule> 

    </Directory> 

</VirtualHost> 

Теперь добавьте свои правила перезаписи для WP и посмотреть, если он работает.

Вы можете проверить, загружает ли Apache модуль с помощью скрипта PHP внутри вашей папки. Попробуйте это и исходите оттуда.

<?php 

if (in_array('mod_rewrite', apache_get_modules())) { 
    echo "Yes, Apache supports mod_rewrite."; 
} 

else { 
    echo "Apache is not loading mod_rewrite."; 
} 
+0

Спасибо, но я использую MAMP, что для osx, и нет такой вещи, как 'a2enmod'. также я попытался поставить 'IfModule' там, но Apache Server не запустится. – FilipLuch

+0

Вы пытались просто добавить ** RewriteEngine On ** и ** AllowOverride All ** к вашему Virtualhost. –

+0

сервер не запускается. Работает только при удалении строк. – FilipLuch

0
  1. Сначала убедитесь, что MAMP Apache загружает модуль. MAMP активировал это по умолчанию.
  2. Я сделал это для Joomla. Wordpress должен быть схожим. Mac не позволит вам переименовать htaccess.txt в корневой каталог (htdocs/yourwebsite /)
  3. Вместо того, чтобы играть с аддонами, которые показывают скрытые файлы - самый простой способ - открыть Filezilla и переименовать локальный файл там. Вы используете обычный wordpress htaccess и переименовываете его в .htaccess
  4. Активно переписывайте, как обычно, в wordpress-backend.