nginx 环境,修改固定链接后打开任何文章都是"有点尴尬诶!该页无法显示。",查不到解决办法.

2016-06-20 23:15:19 +08:00
 2232588429
网上搜出来都说删.htaccess 文件都是 apache 环境的,nginx 如何解决该问题?

6243 次点击
所在节点    WordPress
23 条回复
yeyeye
2016-06-20 23:45:47 +08:00
很显然 把规则发出来
2232588429
2016-06-21 00:05:55 +08:00
@yeyeye

if (-d $request_filename){
rewrite ^/(.*)([^/])$ /$1$2/ permanent;
}
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
yeyeye
2016-06-21 00:20:53 +08:00
@2232588429 我不会改 我的意思是 你发出来 别人顺手就帮你了
seki
2016-06-21 00:27:24 +08:00
改一下 try_files 的设置再在 wp 中设置一下就好了,为什么会有这么多 if
seki
2016-06-21 00:28:46 +08:00
2232588429
2016-06-21 00:37:08 +08:00
@seki 改后成 404 了~
lslqtz
2016-06-21 01:59:37 +08:00
附上本人配置文件。

#user nobody;
worker_processes 1;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 600;
client_max_body_size 128m;
server_names_hash_bucket_size 64;

fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;

gzip on;
gzip_comp_level 9;
gzip_types text/plain text/css application/javascript;

server {
listen 80;
return 403;
}

server {
listen 80;
server_name loli.wiki www.loli.wiki loliwiki.cn www.loliwiki.cn loliwiki.cc www.loliwiki.cc loliwiki.org www.loliwiki.org;
return 301 https://www.loliwiki.org$request_uri;
}

server {
listen 443 ssl http2;
server_name www.loliwiki.org;
index index.php index.htm index.html;
root /var/www/wiki;

ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_certificate /usr/local/nginx/conf/1.crt;
ssl_certificate_key /usr/local/nginx/conf/1.key;
ssl_ct on;
ssl_ct_static_scts /usr/local/nginx/conf/sct1;

location / {
try_files $uri $uri/ /index.php?$args;
if (-f $request_filename) {
break;
}
set $supercache_file '';
set $supercache_uri $request_uri;
set $supercache 1;
set $ihttp_host '';
if ($request_method = POST) {
set $supercache 0;
}
set $qs 0;
if ($query_string) {
set $qs 1;
}
if ($query_string ~* "^utm_source=([^&]+)&utm_medium([^&]+)&utm_campaign=([^&]+)(&utm_content=([^&]+))?$") {
set $qs 0;
set $supercache_uri $document_uri;
}
#deactivate on high load
if ($qs = 1) {
set $supercache 0;
}
if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
set $supercache 0;
}
if ($http_user_agent ~* '(iphone|ipod|aspen|incognito|webmate|android|dream|cupcake|froyo|blackberry9500|blackberry9520|blackberry9530|blackberry9550|blackberry 9800|webos|s8000|bada)') {
set $ihttp_host '-mobile';
}
if ($supercache = 0) {
set $supercache_uri '';
}
if ($supercache_uri ~ ^(.+)$) {
set $supercache_file /var/www/html/wp-content/cache/supercache/$http_host$1/index${ihttp_host}.html;
}
if (-f $document_root$supercache_file) {
#rewrite ^(.*)$ $supercache_file break;
rewrite ^ $supercache_file last;
}
if (!-e $request_filename) {
rewrite . /index.php last;
}
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

location ~ /\.ht {
deny all;
}
location ~ \.(gif|jpg|png|htm|html|css|js|ico)$ {
expires 30d;
}
location ~ .*\.(php|php5)?$ {
fastcgi_pass unix:/var/run/phpfpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}

server {
listen 80;
server_name hardware.name www.hardware.name hardwareunion.com;
return 301 http://www.hardwareunion.com$request_uri;
}

server {
listen 80;
server_name www.hardwareunion.com;
index index.php index.htm index.html;
root /var/www/html;

location / {
try_files $uri $uri/ /index.php?$args;
if (-f $request_filename) {
break;
}
set $supercache_file '';
set $supercache_uri $request_uri;
set $supercache 1;
set $ihttp_host '';
if ($request_method = POST) {
set $supercache 0;
}
set $qs 0;
if ($query_string) {
set $qs 1;
}
if ($query_string ~* "^utm_source=([^&]+)&utm_medium([^&]+)&utm_campaign=([^&]+)(&utm_content=([^&]+))?$") {
set $qs 0;
set $supercache_uri $document_uri;
}
#deactivate on high load
if ($qs = 1) {
set $supercache 0;
}
if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
set $supercache 0;
}
if ($http_user_agent ~* '(iphone|ipod|aspen|incognito|webmate|android|dream|cupcake|froyo|blackberry9500|blackberry9520|blackberry9530|blackberry9550|blackberry 9800|webos|s8000|bada)') {
set $ihttp_host '-mobile';
}
if ($supercache = 0) {
set $supercache_uri '';
}
if ($supercache_uri ~ ^(.+)$) {
set $supercache_file /var/www/html/wp-content/cache/supercache/$http_host$1/index${ihttp_host}.html;
}
if (-f $document_root$supercache_file) {
#rewrite ^(.*)$ $supercache_file break;
rewrite ^ $supercache_file last;
}
if (!-e $request_filename) {
rewrite . /index.php last;
}
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

location ~ /\.ht {
deny all;
}
location ~ \.(gif|jpg|png|htm|html|css|js|ico)$ {
expires 30d;
}
location ~ .*\.(php|php5)?$ {
fastcgi_pass unix:/var/run/phpfpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}
}
lslqtz
2016-06-21 02:04:08 +08:00
日了,配置文件突然发现写错了。。
lslqtz
2016-06-21 02:06:50 +08:00
server_name www.loliwiki.org 下的 /var/www/html 已改为 /var/www/wiki 。。
MrGba2z
2016-06-21 04:49:29 +08:00
记得重启 nginx
dixyes
2016-06-21 07:53:46 +08:00
看见辣么多 if 总感觉离段错误不远
ngx lua 大法好
ztrt
2016-06-21 08:35:48 +08:00
你的伪静态怎么这么多
location / {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
2232588429
2016-06-21 10:00:06 +08:00
@MrGba2z 每次都重启的啦
dixyes
2016-06-21 10:03:09 +08:00
说起来 内个 error.log 啊 access.log 啊咋说的 如果没开 要不要暂时打开看看
(总感觉讨论了半天 最后会发现一句 permission denied (报 404
2232588429
2016-06-21 10:14:19 +08:00
@dixyes 日志就没有最近的记录 T T
dixyes
2016-06-21 10:26:31 +08:00
@2232588429 日志等级不够? 或许你要开到比较 verbose 的?然后记得关
2232588429
2016-06-21 19:08:43 +08:00
@dixyes 就是看不到, rootdeng'lu 不会等级不够啊,好蛋疼!
2232588429
2016-06-21 22:32:20 +08:00
@lslqtz 我配置的是

location / {
index index.html index.htm index.php;
root /www/wwwroot/chinaz.com;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}

}

好像没问题吧,看官方文档也是这么配置的,但是打开就是不行~
lslqtz
2016-06-22 01:42:19 +08:00
@2232588429 试试看把我的照搬过去?话说, root 文件夹名是什么鬼。。
2232588429
2016-06-22 09:38:36 +08:00
@lslqtz

网站文件根目录路径,话说为啥你这个跟我差别好大.你 nginx 是咋安装的? 我是编译安装的.

我贴下我完整的 nginx.conf 配置文件.

#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root /usr/abc.com/;
index index.php index.html index.htm;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /usr/acb.com/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;

# location / {
# root html;
# index index.html index.htm;
# }
#}


# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;

# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.htm;
# }
#}

}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/287161

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX