[wordpress & nginx]除了homepage其他子页面全是404 not found

本文分享了使用LNMP一键安装包配置WordPress站点的过程,并详细介绍了如何将HTTP站点平滑迁移到HTTPS,包括Nginx配置文件的具体设置及注意事项。

使用Lnmp1.4一键安装包,然后配个wp,什么都很快。

然而对于新手来说到了customization的时候痛苦就要double一下下。


本人折腾从http 转到 https 的时候历经磨难,终于自学成“才” (chai)。下面来说一下这个标题问题的解决方案。


nginx.conf in /usr/local/nginx/conf/

server {
	listen    80;
	listen [::]:80;
	server_name	www.example.com;
	return 301	https://$server_name$request_uri;
}

server
    {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name	www.example.com;

	index index.php index.html;
	root /home/wwwroot/www.example.com;

	ssl on;

	ssl_certificate /home/wwwroot/www_example_com.crt;
	ssl_certificate_key /home/wwwroot/example.key;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

	ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS;
	ssl_prefer_server_ciphers on;

        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php.conf;

	#from nginx wordpress not working;
	include wordpress.conf;                                 #Check wordpress.conf

        location /nginx_status
        {
            stub_status on;
            access_log   off;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/wwwlogs/access.log;
    }
include vhost/*.conf;
}

wordpress.conf in /usr/local/nginx/conf/

location / {
	#try_files $uri $uri/ /index.php?$args;
	try_files $uri $uri/ /index.php?q=$uri&$args;   #重点
}

# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;




404 Not Found 是一个HTTP状态码,表示客户端能够与服务器通信,但服务器找不到请求的资源。这个错误通常发生在用户请求的URL在服务器上不存在时。 对于你提到的情况“nginx/1.18.0 (Ubuntu) 除了主页其它页面都会提示这个”,可能有以下几个原因: 1. **配置错误**:Nginx的配置文件(通常是`/etc/nginx/sites-available/default`或`/etc/nginx/nginx.conf`)可能没有正确配置其他页面的路由。请检查配置文件,确保其他页面的路径和文件位置正确。 2. **文件权限问题**:确保服务器上的文件权限设置正确,Nginx进程有权限读取这些文件。可以使用`chmod`和`chown`命令来修改文件权限和所有者。 3. **文件位置错误**:确认其他页面的文件确实存在于服务器上,并且路径与配置文件中的路径一致。 4. **重定向问题**:检查是否有重定向规则导致请求被错误地重定向到不存在的页面。 5. **缓存问题**:有时候浏览器缓存可能会导致旧的配置被使用,尝试清除浏览器缓存或使用无痕模式重新访问页面。 以下是一个简单的Nginx配置文件示例,确保其他页面的路由正确配置: ```nginx server { listen 80; server_name your_domain.com; root /var/www/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } location /other-page { try_files $uri $uri/ /other-page.html; } } ``` 在这个示例中,`/other-page`请求会被重定向到`/other-page.html`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

取啥都被占用

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值