为了了解wordpress的伪静态机制,就顺带研究了一下htaccess文件的写法和内容,原本是想让wordpress的二级站点依旧实现伪静态的,就想着可以更改htaccess文件来实现,让其判断url来的不同的子目录而实现跳转。
什么是htaccess?
htaccess文件是Apache服务器中的一个配置文件,它允许我们对目录下的网站进行配置而不需要root等过高的权限。
- 通过htaccess文件,我们可以实现:
- 网页301重定向
- 自定义404错误页面
- 改变文件扩展名
- 允许/阻止特定的用户或者目录的访问
- 禁止目录列表
- 配置默认文档等功能。
基本上Unix、Linux系统或者是任何版本的Apache Web服务器都是支持.htaccess的,但是有的主机服务商可能不允许你自定义自己的.htaccess文件。好在吵吵的博客是用的衡天主机,还是支持.htaccess文件的。
此篇日志只关注吵吵给予解决的重新定向问题.
如何使用Rewrite?
一个.htaccess大概分为以下几步:
1、RewriteEngine。状态包括 On|Off。用于开启或停用rewrite功能。
2、RewriteBase URL-path
该规则实际处理的只是剥离了本地路径前缀的一部分。处理结束后,这个路径会被自动地附着回去。默认值 是”RewriteBase physical-directory-path”。
3、RewriteCond TestString CondPattern [flags]。
如果它写成rewriteCondition的话,你应该就明白是什么意思了,即是“条件”,就是重新定向的条件了,如网址是www.chaochaoblgo.com这样子的。主要包括
HTTP headers: | connection & request: | |
---|---|---|
HTTP_USER_AGENT HTTP_REFERER HTTP_COOKIE HTTP_FORWARDED HTTP_HOST HTTP_PROXY_CONNECTION HTTP_ACCEPT |
REMOTE_ADDR REMOTE_HOST REMOTE_USER REMOTE_IDENT REQUEST_METHOD SCRIPT_FILENAME PATH_INFO QUERY_STRING AUTH_TYPE |
|
server internals: | system stuff: | specials: |
DOCUMENT_ROOT SERVER_ADMIN SERVER_NAME SERVER_ADDR SERVER_PORT SERVER_PROTOCOL SERVER_SOFTWARE |
TIME_YEAR TIME_MON TIME_DAY TIME_HOUR TIME_MIN TIME_SEC TIME_WDAY TIME |
API_VERSION THE_REQUEST REQUEST_URI REQUEST_FILENAME IS_SUBREQ |
4、RewriteRule Pattern Substitution [flags]
RewriteRule指令是重写引擎的根本。此指令可以多次使用。 每个指令定义一个简单的重写规则。这些规则的定义顺序尤为重要, 因为,在运行时刻,规则是按这个顺序逐一生效的.
Pattern是一个作用于当前URL的兼容perl的正则表达式。重写规则中的Substitution是, 当原始URL与Pattern相匹配时,用以替代(或替换)的字符串。
简单的正则表达式有:
* 代表前面0或更多个字符
+ 代表前面1或更多个字符
? 代表前面0或1个字符
^ 代表字符串的开始位置
^ 在方括号里代表“非”,例如[^/]代表非斜杠。
$ 代表字符串结束的位置
. 代表任何字符(也就是通配符)
\ 取消后面字符的特殊意思,转为原义字符。
wordpress的htaccess实现的跳转
我找到wordpress的文件看看:
# BEGIN WordPress
//加载模块
RewriteEngine On //开启重定向
RewriteBase / //设置定向路径
RewriteRule ^index\.php$ – [L] //主页跳转为空
RewriteCond %{REQUEST_FILENAME} !-f //当请求文件时
RewriteCond %{REQUEST_FILENAME} !-d //当请求文件时
RewriteRule . /index.php [L] //一点代表所有的匹配,即所有的url都定向到index.php
# END WordPress
以上就是wordpress实现重新定向的文件,今天到此结束,明天看如何实现二级目录站点的伪静态url,晚安。
吵吵微信朋友圈,请付款实名加入:
应该是一名程序员吧,牛!!