为什么开启地址重写?typecho 给出了答案:
- 地址重写即 rewrite 功能是某些服务器软件提供的优化内部连接的功能
- 打开此功能可以让你的链接看上去完全是静态地址
下面我也来操作一下,实现 3 个功能:
- http 重定向到 https
- 不是 www 开头的地址重定向到 www 开头的地址
- 网站文章地址美化(看起来像合理的静态地址),也就是没有
/index.php/
这个节点
- 网站文章地址美化(看起来像合理的静态地址),也就是没有
一、服务器端配置(lamp环境)
1. 修改 /etc/apache2/apache2.conf ,开启重写
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride all # 将 None 改为 all
Require all granted
</Directory>
这个网站目录选择你的网站根目录那一段的配置,另外,这个配置有的人可能放在 /etc/apache2/sites-available/000-default.conf
2. 修改 /etc/apache2/sites-available/000-default.conf ,开启 http 到 https 重定向
# 在VirtualHost 节点内部的最后添加如下代码
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
3.在网站更目录添加 .htaccess 写入如下代码
RewriteEngine on
#下面两行是根域名到www 重定向
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
#下面四行实现 typecho 地址重写功能
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
二、typecho 博客后台启用地址重写功能
三、修改之前不规范的文章地址
譬如我,之前写文章从不看下面的链接还可以给文章设一个自定义标题,都是自动生成的数字,结果一旦网站重做,同样的地址就会对应不同的文章。亡羊补牢,未为晚矣。
也不复杂,用 navicat 远程连接数据库,修改 contents 表下面对应文章的 slug 字段即可,如下图所示是我修改后的名字。
contents 表包含了文章,图片以及独立页面信息。