首页 > 网站 > 建站经验 > 正文

ISAPI-REWRITE伪静态规则写法以及说明

2019-11-02 16:08:00
字体:
来源:转载
供稿:网友
REWRITE伪静态

一、Apache配置:

进入/etc/httpd/conf/目录下,打开httpd.conf文件。

启用rewrite

# LoadModule rewrite_module modules/mod_rewrite.so 去除前面的 #

启用.htaccess AllowOverride None 修改为: AllowOverride All

--------------------------------------------------------------------------------

二、Rewrite写法

服务器有配置文件不可能由我们来改,所以大多情况下要在网站的根目录下建一个.htaccess文件。

RewriteEngine on //启动rewrite引擎

RewriteRule ^/index([0-9]*).html$ /index.php?id=$1 //“([0-9]*)” 代表范围 用(.*)代表所有,下同。

RewriteRule ^/index([0-9]*)/$ /index.php?id=$1 [R] //虚拟目录

--------------------------------------------------------------------------------

三、mod_rewrite 规则修正符

1) R 强制外部重定向

2) F 禁用URL,返回403HTTP状态码。

3) G 强制URL为GONE,返回410HTTP状态码。

4) P 强制使用代理转发。

5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。

6) N 重新从第一条规则开始运行重写过程。

7) C 与下一条规则关联,如果规则匹配则正常处理,以下修正符无效

8) T=MIME-type(force MIME type) 强制MIME类型

9) NS 只用于不是内部子请求

10) NC 不区分大小写

11) QSA 追加请求字符串

12) NE 不在输出转义特殊字符 /%3d$1 等价于 =$1

ISAPI_Rewrite规则写法

常见ISAPI_Rewrite规则写法

复制代码 代码如下:

# 排除当前虚拟主机需要正常访问的域名(web.3637.com www.3637.com)

# RewriteCond Host: (?:web|www)/.eboat/.cn

# 多数情况下是一个,即当前提供二级域名服务的系统(如建站系统)

RewriteCond Host: web/.eboat/.cn

RewriteRule (.*) $1 [L]

# 解决不规范目录(末尾无/)的问题

# 但前提是目录名不含‘.'而文件名必须包含,否则无法区分两者

# 如果保证URL中的目录名称规范,则无需此规则

RewriteRule ^/([^.]+[^/]$) /$1/ [L,R]

# 提取任意的二级域名名称(即第一个词汇)

# 用[a-zA-Z0-9_-]限制名称字符,重写Url到Home/子目录下

# 如 test.3637.com => web.3637.com/Home/test

RewriteCond Host: ([a-zA-Z0-9_-]+)/.eboat/.cn

RewriteRule ^/(.*) /Home/$1/$2 [I,L]

[ISAPI_Rewrite]

RepeatLimit 1

# Defend your computer from some worm attacks

RewriteRule .*(?:global.asa|default/.ida|root/.exe|/./.).* . [F,I,O]

# 排除当前虚拟主机需要正常访问的域名(web.3637.com www.3637.com)

# RewriteCond Host: (?:web|www)/.eboat/.cn

# 多数情况下是一个,即当前提供二级域名服务的系统(如建站系统)

RewriteCond Host: web/.eboat/.cn

RewriteRule (.*) $1 [L]

# 解决不规范目录(末尾无/)的问题

# 但前提是目录名不含‘.'而文件名必须包含,否则无法区分两者

# 如果保证URL中的目录名称规范,则无需此规则

RewriteRule ^/([^.]+[^/]$) /$1/ [L,R]

# 提取任意的二级域名名称(即第一个词汇)

# 用[a-zA-Z0-9_-]限制名称字符,重写Url到Home/子目录下

# 如 test.3637.com => web.3637.com/Home/test

RewriteCond Host: ([a-zA-Z0-9_-]+)/.eboat/.cn

RewriteRule ^/(.*) /Home/$1/$2 [I,L]

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表