Typecho开启伪静态,隐藏去掉连接中的index.php

Typecho能够正常工作后,默认链接里都会带有一个首页的路径【index.pnp】,

例如:【https://annum.cn/index.php/archives/1.html】。

这个【index.php】在页面不能产生任何作用,还导致页面链接过长,非常影响美观。我们可以通过Typecho自带的地址重写功能去掉这个【index.php】。

1、启用地址重写功能

进入Typecho后台“控制面板>设置>永久链接”,将“是否使用地址重写功能”改为【启用】,这里可能会导致系统提示不支持地址重写,解决方法是直接选择强制开启就可以。

2、自定义文章路径

【自定义文章路径】中选择自己喜欢的URL格式,保存。

68afea4ed74920f488381dcf6a145e8c.png

如果设置完固定链接,打开文章和页面显示为404错误,这是由于Nginx对pathinfo支持不够的问题,需要手动添加地址重写代码。

将下面代码复制到宝塔面板“网站>设置>伪静态”的typecho规则文件下,然后保存。文章和页面即可恢复访问。

 

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;
}

3.虚拟主机添加.htacess

因为便宜,不少人都注册了阿里云的共享虚拟主机,实际上,阿里云已经默认开启了云虚拟主机的伪静态。 正常来说,虚拟主机适配了伪静态之后,我们只需要在typecho后台开启就可以了。但事实上,当你在后台设置下的永久连接选项里勾选启用,会出现“重写功能检测失败,请检查你的服务器设置,如果你仍然想启用此功能,请勾选这里,勾选以后,点击保存设置。”的字样。

看到上面的警告后不要方,我们就强制开启。

步骤

然后新建一个记事本,并填写以下代码:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase / 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L]

之后将文件命名为.htacess,上传至htdocs网站根目录下。这样就可以正常开启typecho的伪静态了。

THE END