Typecho 是一个基于 PHP 的简洁的开源博客程序。它使用多种数据库储存数据,在 GNU GPLv2 许可证下发行。相对于 WordPress 而言,更加简洁,原生支持 Markdown,非常易于写文章。

背景

未开启伪静态时,博客的链接是带有index.php的,除了不太美观,对搜索引擎的抓取也不太友好。

对于 Typecho 开启伪静态一般需要两步,一是在 Typecho 后台进行设置,使用地址重写功能,如果出现提示,点击启用。仅仅在 Typecho 后台设置永久链接是不够的,还需要在服务器进行相关配置进行配合,即利用服务器的 rewrite 功能来隐藏域名后的index.php。

如果在 Typecho 后台启用地址重写功能出现红色提示重写功能检测失败,请检查你的服务器设置,选择仍然启用此功能,勾选即可

Apache下解决方案

问题在于缺少相应的配置文件

htaccess 文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置。通过 htaccess 文件,可以帮我们实现:网页 301 重定向、自定义 404 错误页面、改变文件扩展名、允许 / 阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

下面需要修改.htaccess文件(根目录没有就新建一个)
对于Apache服务器

<IfModule mod_rewrite.c>
RewriteEngine On
# 下面是在根目录,文件夹要修改路径
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

Windows下就新建一个记事本,复制以上代码,然后另存为保存为.htaccess
然后上传到网站根目录即可,最后重新后台开启地址重写功能

其他环境的配置

Linux Apache环境(Nginx)

location / {
index index.html index.php;
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;
}
}

Windows IIS伪静态(httpd.ini)

[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# 中文tag解决
RewriteRule /tag/(.*) /index\.php\?tag=$1
# sitemapxml
RewriteRule /sitemap.xml /sitemap.xml [L]
RewriteRule /favicon.ico /favicon.ico [L]
# 内容页
RewriteRule /(.*).html /index.php/$1.html [L]
# 评论
RewriteRule /(.*)/comment /index.php/$1/comment [L]
# 分类页
RewriteRule /category/(.*) /index.php/category/$1 [L]
# 分页
RewriteRule /page/(.*) /index.php/page/$1 [L]
# 搜索页
RewriteRule /search/(.*) /index.php/search/$1 [L]
# feed
RewriteRule /feed/(.*) /index.php/feed/$1 [L]
# 日期归档
RewriteRule /2(.*) /index.php/2$1 [L]
# 上传图片等
RewriteRule /action(.*) /index.php/action$1 [L]
Last modification:August 2nd, 2020 at 09:44 pm
如果觉得我的文章对你有用,请随意赞赏