Назад | Перейти на главную страницу

Подстраницы Magento дают 404

Я только что восстановил наш сайт Magento на другом сервере с apache2 на ubuntu. Домашняя страница открывается нормально, но если я пытаюсь перейти на любую другую страницу, я получаю 404.

Разрешения

Вещи, которые я пробовал

В файлах журнала ничего не отображается, кроме стандартных строк 404 в access.log и error.log.

файл apache2 .conf

<VirtualHost *:80>
    ServerAdmin serveradmin@mydomain.com
    ServerName mydomain.com

    DocumentRoot "/var/www/default/"
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory "/var/www/default/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        php_admin_flag engine on
        php_admin_value open_basedir none
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

.htaccess

DirectoryIndex index.php

<IfModule mod_php5.c>
    php_value memory_limit 10G
    php_value max_execution_time 1800000
    php_flag magic_quotes_gpc off
    php_flag session.auto_start off
    php_flag suhosin.session.cryptua off
    php_flag zend.ze1_compatibility_mode Off
</IfModule>

<IfModule mod_security.c>
    SecFilterEngine Off
    SecFilterScanPOST Off
</IfModule>

<IfModule mod_deflate.c>
</IfModule>

<IfModule mod_ssl.c>
    SSLOptions StdEnvVars
</IfModule>

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule .* index.php [L]
</IfModule>

AddDefaultCharset Off

<IfModule mod_expires.c>
    ExpiresDefault "access plus 1 year"
</IfModule>

Order allow,deny
Allow from all

<Files RELEASE_NOTES.txt>
    order allow,deny
    deny from all
</Files>

Вывод файла журнала

==> /var/log/apache2/oem1-error.log <==
[Tue Oct 15 12:32:21 2013] [error] [client 192.168.0.4] File does not exist: /var/www/gearhead_oem1/admin

==> /var/log/apache2/oem1-access.log <==
192.168.0.4 - - [15/Oct/2013:12:32:21 -0600] "GET /admin HTTP/1.1" 404 507 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36"

Php требует разных разрешений. Magento рекомендует следующее:

find . -type d -exec chmod 775 "{}" \;
find . -type f -exec chmod 664 "{}" \;

Похоже, проблема с перезаписью. В Ubuntu:

Бегать:

a2enmod rewrite
apt-get install php5-curl

а потом:

service apache2 restart

mod_rewrite и php-curl теперь будет включен!