果然给我在codex上找到了解决方案,就是简单地加一行斜杠重定向而已,方法综述如下:
南部网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。成都创新互联公司于2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。
1、登录shell,vim编辑Nginx配置目录(一般是在/usr/local/nginx/conf/)下的"wordpress.conf",当然如果你像我一样用的是自己写的conf文件,那就改对应的那个重定向配置文件就好。
?
1
vim /usr/local/nginx/conf/wordpress.conf
2、把官方给的那一行加到文件最后面就行了
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
location /blog/ {
if ($host != '' ) {
rewrite ^/(.*)$ // 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 (.*) /blog/index.php;
}
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
3、:wq保存重启nginx即可
其实你要是懒的话,直接用 "echo " 追加就行了= =
PS:据说 nginx不会自动在请求的最后加上一个斜线,不会自动判断请求的是一个文件还是一个目录。网上搜索 nginx 斜线,都会提到需要在请求的最后加上这个斜杠。
网上大部资料是这样写的 :
在nginx\conf\vhost.conf中的 location / {}的index index.html后面加上
?
1
2
3
if (-d $request_filename) {
rewrite ^/(.*)([^/])$ permanent;
}
但如果你的网址后面带了端口的话,那么转向时还是会出现403错误。
即 $host 变量把端口弄没了,改成 $http_host 变量即可
改成如下写法即解决了所有问题
?
1
2
3
if (-d $request_filename) {
rewrite ^/(.*)([^/])$ permanent;
}
下面介绍3中方法 给你的wordpress增加.html后缀:
1,最简单的方法修改固定链接
wordpress的自带的固定链接可以改变链接样式,但是如果格式没写好,可能给你的页面访问带来困难,链接中特殊符号 空格,还是包含中文。固定链接格式:/%postname%.html 这个样就为中文,但是也是可行的。我个人的格式是/archives/%post_id%.html。
2,插件也可以实现
单独为页面添加.html后缀
安装:.html on PAGES 插件实现,启用插件后无需任何设置。
分类及页面同时添加.html后缀
安装:.html in category and page url 插件,启用插件后需要到插件设置页面保存一下设置。
需要注意的是,启用插件后还需要到后台固定链接设置中,重新保存一下设置,否则会跳到404页面,如果不成功可以先删除空间根目录的.htaccess文件,之后保存会自动生成新的。
另外,安装插件后可能会造成日志分页翻页错误…..
3.既然可以插件当然代码可以
将下面代码添加主题functions.php中即可
// 页面链接添加html后缀
add_action('init', 'html_page_permalink', -1);
function html_page_permalink() {
global $wp_rewrite;
if ( !strpos($wp_rewrite-get_page_permastruct(), '.html')){
$wp_rewrite-page_structure = $wp_rewrite-page_structure . '.html';
}
}
添加后,需要到固定链接设置页面,重新保存一下固定链接设置,否则不会生效。
上述代码适合伪静态的固定链接形式使用,比如:
/%postname%.html
/%post_id%.html
另外,如果同时使用了“给WordPress分类目录和页面添加斜杠”一文中的代码,还需要将该文中的代码修改为:
// 添加斜杠
function nice_trailingslashit($string, $type_of_url) {
if ( $type_of_url != 'single' $type_of_url != 'page' )
$string = trailingslashit($string);
return $string;
}
add_filter('user_trailingslashit', 'nice_trailingslashit', 10, 2);
排除页面文件,否则页面链接.html后面也会自动加上斜杠。
这个你可以调置一下后台就可以解决
操作方法:
后台——设置——常规
在常规页面,有“站点标题”和“副标题”
你的这个wordpress可能就在副标题那,
删除它就可以了。
还有一种方法,
就是修改你的主题的header.php文件中的title与/title之间的代码也可以实现。
希望帮到你。