• Доброго времени суток.
    После переноса ВП на другой хостинг, перестали работать постоянные ссылки в виде /sample-post/. С видом по умолчанию /?p=123 все работает, все остальные вариант ссылок — нет.
    mod_rewrite включен, .htaccess WP создает, но результата нет.
    В чем может быть причина?

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Попробуйте, просто обновить «постоянные ссылки»… была такая тема у меня на nic.ru хостинге… решилась именно таким способом.

    Да, в корневом .htaccess была вот такая хитрая штука:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    
    RewriteRule ^login/?$ /wp-login.php?44w4ul6nfblzx1v0penxu [R,L]
    
    RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
    RewriteRule ^admin/?$ /wp-login.php?44w4ul6nfblzx1v0penxu&redirect_to=/wp-admin/ [R,L]
    
    RewriteRule ^admin/?$ /wp-admin/?44w4ul6nfblzx1v0penxu [R,L]
    
    RewriteRule ^register/?$ /wp-login.php?44w4ul6nfblzx1v0penxu&action=register [R,L]
    
    RewriteCond %{SCRIPT_FILENAME} !^(.*)admin-ajax\.php
    RewriteCond %{HTTP_REFERER} !^(.*)domain.com/wp-admin
    RewriteCond %{HTTP_REFERER} !^(.*)domain.com/wp-login\.php
    RewriteCond %{HTTP_REFERER} !^(.*)domain.com/login
    RewriteCond %{HTTP_REFERER} !^(.*)domain.com/admin
    RewriteCond %{HTTP_REFERER} !^(.*)domain.com/register
    RewriteCond %{QUERY_STRING} !^44w4ul6nfblzx1v0penxu
    RewriteCond %{QUERY_STRING} !^action=logout
    RewriteCond %{QUERY_STRING} !^action=rp
    RewriteCond %{QUERY_STRING} !^action=register
    RewriteCond %{QUERY_STRING} !^action=postpass
    RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
    RewriteRule ^.*wp-admin/?|^.*wp-login\.php /not_found [R,L]
    
    RewriteCond %{QUERY_STRING} ^loggedout=true
    RewriteRule ^.*$ /wp-login.php?44w4ul6nfblzx1v0penxu [R,L]
    </IfModule>

    Что за бред? Исправили? Проблема решилась?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Да, в корневом .htaccess была вот такая хитрая штука

    Такие правила создаёт плагин iThemes Security (Better WP Security).

    Если это всё содержимое файла, то в нём не хватает правил самого WordPress.

    Неа. Отключил ithemes secturity, но постоянные ссылки все равно не работают.

    Может быть дело в том, что посты как-то хитро сделаны?

    Вот секция вордпресса, которая была в изначальном файле:

    # 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

    Ага, кажется проблема не в апаче, а в nginx’е. Пытаюсь найти правила для него, дабы нормально отрабатывался реврайт.

    if (!-e $request_filename) {
                rewrite ^.+/?(/wp-.*) $1 last;
                rewrite ^.+/?(/.*\.php)$ $1 last;
                rewrite ^(.+)$ /index.php?q=$1 last;
            }

    Такой код не приводит к 404, но открывается просто та же главная страница.

    Вот оно!

    error_page 404 = //index.php?q=$uri;

    Все остальные варианты, приведенные в инете — полная лажа.

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «После переноса не работают постоянные ссылки» закрыта для новых ответов.