404 Not Found nginx/1.10.0 (Ubuntu)

Привет,

Я установил wordpress на Lemp 16.04 все прошло хорошо, но когда я изменил постоянные ссылки на post-name, все страниц, кроме домашней, возвращается с этой ошибкой (404 Not Found nginx / 1.10.0 (Ubuntu)). Я, вносил изменения в /etc/nginx/sites-available/default по инструкциям. Вот конфиг:

server {

listen 80 defaultserver;

listen [::]:80 defaultserver;

SSL configuration

listen 443 ssl defaultserver;

listen [::]:443 ssl defaultserver;

Note: You should disable gzip for SSL traffic.

See: https://bugs.debian.org/773332

Read up on ssl_ciphers to ensure a secure configuration.

See: https://bugs.debian.org/765782

Self signed certs generated by the ssl-cert package

Don’t use them in a production server!

include snippets/snakeoil.conf;

   root /var/www/html;

    # Add index.php to the list if you are using PHP
    http {
index index.html index.htm index.php index.nginx-debian.html;

    server_name _;

    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            #try_files $uri $uri/ =404;
             try_files $uri $uri/ /index.php$is_args$args;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #       include snippets/fastcgi-php.conf;
    #
    #       # With php7.0-cgi alone:
    #       fastcgi_pass 127.0.0.1:9000;
    #       # With php7.0-fpm:
    #       fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #       deny all;
    #}
    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
    expires max;
    log_not_found off;

}

Я не следовал инструкциям по установке ssl, потому что это тест, и сделал другого пользователя с привилегиями sudo, но в инструкции не было ничего о переключении на пользователя без полномочий root в любой момент, поэтому я продолжил использовать пользователя root для всех процессов.

2 симпатии

Убедитесь, что ваш сайт WordPress установлен в /var/www/html, и вы установили правильные разрешения для /var/www/html и его содержимого. Чтобы проверить это, выполните команду ls:

ls -ld /var/www/html

Также для содержимого:

ls -l /var/www/html

Рекомендуемые разрешения: sammy:www-data, где sammy - ваш пользователь без полномочий root. Если это не так, вы можете установить их, запустив:

sudo chown -R sammy:www-data /var/www/html

Кроме того, убедитесь, что у вас распакован WordPress в /var/www/html, а не в /var/www/html/wordpress или чем-то подобном.

Вы также можете опубликовать результат ls -l /var/www/html, чтобы мы были уверены, что вы все сделали правильно.

Если ничего не помогает, лучше всего проверить журнал. Проверьте последние записи в /var/log/nginx/error.log и /var/log/nginx/access.log. Первый из них наиболее актуален и, вероятно, расскажет вам причину ошибки. Если вы не знаете, как его отлаживать, вы можете опубликовать его здесь (обязательно отредактируйте всю значимую информацию).

Как на форуме, так и на другом сайте WP. Вы не можете сделать это так, как объяснили.

Во-первых, у вас не может быть двух сайтов WP в одном каталоге. Лучшим способом было бы создать соответствующие каталоги в /var/www для каждого сайта. Например, в /var/www/example.com храните сайт WordPress, работающий в основном домене - example.com, а в /var/www/subdomain.example.com - храните сайт, работающий на субдомене.

Что касается форума, я бы не рекомендовал использовать example.com/forum, так как он может нарушить постоянные ссылки WordPress. Сделайте это с поддоменами, как я объяснил выше - создайте для них каталог, например /var/www/forum.example.com и сохраните его там.

Все это потребует от вас создания соответствующих серверных блоков Nginx

1 симпатия