由博客软件生成的页面往往是一些顺序排列的字符或数字,比如“1.html”,这种命名方式无法让人联想到页面的内容,同样也会让各大搜索引擎的搜索机器人一头雾水。为了能够让自己的页面更容易为搜索引擎所收录,我们往往会对动态的地址进行伪静态处理,以便让访问者能够通过一个更具实际意义的地址访问到所需要的内容。
typecho启用伪静态
在typecho启用伪静态,首先需要在后台管理页面中选择“设置” > “永久链接” > 选择自己喜欢的地址展现方式 > “启用”,然后保存设置就可以了。但在实际操作中,用户往往会获得一个警告提示,这个时候首先选择忽略警告强制开启,在Wordpress中,一旦选择开启了伪静态,Wordpress会自动生成站点伪静态所需要的.htaccess文件。收到这个提示的原因,大概率是因为这个文件中没有为typecho成功创建,这个时候就需要我们登录服务器手动去创建了。
创建并修改.htaccess
.htaccess是一个隐藏文件,要求创建于站点的根目录上,对于typecho的站点,一般就放在build目录下就可以了。进入目录后使用Vim打开.htaccess文件,如无内容则说明不存在该文件;
vim .htaccess
将以下内容复制至文件中:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>
因为本站设置了https,希望用户仅通过https访问,所以又加了这样一条,将所有来自http的请求都跳转为https:
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.abddb.com/$1 [R=301,L]
后续由于通过不带www的地址访问自己的站点时,发现站点会提示跨域错误,所以又增加了一条规则,将所有短网址访问的请求统一转为带www的地址:
RewriteCond %{HTTP_HOST} ^abddb.com
RewriteRule (.*) https://www.abddb.com/$1 [R=301,L]
最后本博客完整的伪静态设置文件内容如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.abddb.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^abddb.com
RewriteRule (.*) https://www.abddb.com/$1 [R=301,L]
</IfModule>