##安装flarum后404错误和nginx伪静态设置
适用版本:Flarum v1.0 及以上
Web服务器:nginx
在你网页伪静态配置文件(通常是xxx.conf),添加以下参数
location = /sitemap.xml {
try_files $uri $uri/ /index.php?$query_string;
}
location /flarum {
deny all;
return 404;
}
如果你启用了HTTPS SSL,还需要在配置里面加上上述参数
在最后我还单独引用了官方的伪静态规则
include /路径/.nginx.conf;
.nginx.conf配置如下
#Pass requests that don't refer directly to files in the filesystem to index.php
location / {
try_files $uri $uri/ /index.php?$query_string;
}
#Uncomment the following lines if you are not using a `public` directory
#to prevent sensitive resources from being exposed.
#location ~* ^/(\.git|composer\.(json|lock)|auth\.json|config\.php|flarum|storage|vendor) {
#deny all;
#return 404;
#}
#The following directives are based on best practices from H5BP Nginx Server Configs
#https://github.com/h5bp/server-configs-nginx
#Expire rules for static content
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
add_header Cache-Control "max-age=0";
}
location ~* \.(?:rss|atom)$ {
add_header Cache-Control "max-age=3600";
}
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|mp4|ogg|ogv|webm|htc)$ {
add_header Cache-Control "max-age=2592000";
access_log off;
}
location ~* \.(?:css|js)$ {
add_header Cache-Control "max-age=31536000";
access_log off;
}
location ~* \.(?:ttf|ttc|otf|eot|woff|woff2)$ {
add_header Cache-Control "max-age=2592000";
access_log off;
}
#Gzip compression
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_proxied any;
gzip_vary on;
gzip_types
application/atom+xml
application/javascript
application/json
application/ld+json
application/manifest+json
application/rss+xml
application/vnd.geo+json
application/vnd.ms-fontobject
application/x-font-ttf
application/x-web-app-manifest+json
application/xhtml+xml
application/xml
font/opentype
image/bmp
image/svg+xml
image/x-icon
text/cache-manifest
text/css
text/plain
text/vcard
text/vnd.rim.location.xloc
text/vtt
text/x-component
text/x-cross-domain-policy;
最后运行nginx -t测试命令看看nginx配置有没有报错
nginx -t
如果提示第二句报错,请把include /路径/.nginx.conf 这个文件的下面几句代码注释掉
#location / {
#try_files $uri $uri/ /index.php?$query_string;
#}
再运行nginx -t测试命令看看nginx配置有没有报错,没错就会提示如下
看到成功,就重启nginx服务