吵吵   2013-03-23  阅读:2,343

为了了解wordpress的伪静态机制,就顺带研究了一下htaccess文件的写法和内容,原本是想让wordpress的二级站点依旧实现伪静态的,就想着可以更改htaccess文件来实现,让其判断url来的不同的子目录而实现跳转。

什么是htaccess?

htaccess文件是Apache服务器中的一个配置文件,它允许我们对目录下的网站进行配置而不需要root等过高的权限。

  • 通过htaccess文件,我们可以实现:
  • 网页301重定向
  • 自定义404错误页面
  • 改变文件扩展名
  • 允许/阻止特定的用户或者目录的访问
  • 禁止目录列表
  • 配置默认文档等功能。

基本上Unix、Linux系统或者是任何版本的Apache Web服务器都是支持.htaccess的,但是有的主机服务商可能不允许你自定义自己的.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,晚安。

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

一条回应:“wordpress中htaccess实现的重定向”

  1. 说道:

    应该是一名程序员吧,牛!!

发表评论

电子邮件地址不会被公开。 必填项已用*标注