Apache 域名跳转配置
<h1 class="postTitle">Apache 域名跳转配置</h1><div class="clear"> </div>
<div class="postBody">
<div id="cnblogs_post_body" class="blogpost-body ">
<p><strong>域名跳转</strong></p>
<div> 就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 。</div>
<div> </div>
<div><strong>参数格式</strong></div>
<div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">参数:
Apache mod_rewrite 规则重写
</span><span style="color: rgba(128, 0, 128, 1)">1</span>) R[=<span style="color: rgba(0, 0, 0, 1)">code](force redirect) 强制外部重定向
说明:强制在替代字符串加上http:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">thishost[:thisport]/前缀重定向到外部的URL.如果code不指定,将用缺省的302 HTTP状态码。</span>
<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">) F(force URL to be forbidden)禁用URL,返回403HTTP状态码。
</span><span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">) G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码。
</span><span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">) P(force proxy) 强制使用代理转发。
</span><span style="color: rgba(128, 0, 128, 1)">5</span>) L(<span style="color: rgba(0, 0, 255, 1)">last</span><span style="color: rgba(0, 0, 0, 1)"> rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。
</span><span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">) N(next round) 重新从第一条规则开始运行重写过程。
</span><span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">) C(chained with next rule) 与下一条规则关联
</span><span style="color: rgba(128, 0, 128, 1)">8</span>) T=MIME-<span style="color: rgba(0, 0, 0, 1)">type(force MIME type) 强制MIME类型
</span><span style="color: rgba(128, 0, 128, 1)">9</span>) NS (used only <span style="color: rgba(0, 0, 255, 1)">if</span> no internal sub-<span style="color: rgba(0, 0, 0, 1)">request) 只用于不是内部子请求
</span><span style="color: rgba(128, 0, 128, 1)">10</span>) NC(no <span style="color: rgba(0, 0, 255, 1)">case</span><span style="color: rgba(0, 0, 0, 1)">) 不区分大小写
</span><span style="color: rgba(128, 0, 128, 1)">11</span>) QSA(query <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)"> append) 追加请求字符串
</span><span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">) NE(no URI escaping of output) 不在输出转义特殊字符
说明:RewriteRule </span>/foo/(.*) /bar?arg=P1%3d$<span style="color: rgba(128, 0, 128, 1)">1</span> 将能正确的将/foo/zoo转换成/bar?arg=P1=<span style="color: rgba(0, 0, 0, 1)">zoo
</span><span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">) PT(pass through to next handler) 传递给下一个处理
说明:RewriteRule </span>^/abc(.*) /def$<span style="color: rgba(128, 0, 128, 1)">1</span> # 将会交给/def规则处理Alias /def /<span style="color: rgba(0, 0, 0, 1)">ghi
</span><span style="color: rgba(128, 0, 128, 1)">14</span>) S=<span style="color: rgba(0, 0, 0, 1)">num(skip next rule(s)) 跳过num条规则
</span><span style="color: rgba(128, 0, 128, 1)">15</span>) E=<span style="color: rgba(0, 0, 0, 1)">VAR:VAL(set environment variable) 设置环境变量
</span><span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">) OR 代表或者
注:如果规则匹配则正常处理,</span><span style="color: rgba(128, 0, 128, 1)">8</span>)以后的标志无效,如果不匹配,那么下面所有关联的规则都跳过。</pre>
</div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">格式:
# 调用mod_rewrite.c模块
</span><IfModule mod_rewrite.c><span style="color: rgba(0, 0, 0, 1)">
# 打开rewirte功能
RewriteEngine on
# 声明Client请求的主机中前缀不是www.client.cn
RewriteCond </span>%(HTTP_HOST) ^<span style="color: rgba(0, 0, 0, 1)">www.client.com$
# 含义是如果Client请求的主机中的前缀符合上述条件,则直接跳转。
AuthType Basic </span>^(.*)$ http:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">www.server.com/$1 </span>
</IfModule></pre>
</div>
<p><strong>实例配置</strong></p>
<div>1、查找是否有rewrite模块,域名跳转模块</div>
</div>
<div> </div>
<div>
<div class="cnblogs_code">
<pre>命令:apache2/bin/apachectl -M | <span style="color: rgba(0, 0, 255, 1)">grep</span><span style="color: rgba(0, 0, 0, 1)"> rewrit
rewrite_module (shared)
如果不存在:
</span><br><span style="color: rgba(0, 0, 0, 1)">
# 编辑主配置文件,解注释
vim httpd.conf</span><br><span style="color: rgba(0, 0, 0, 1)">
LoadModule rewrite_module modules</span>/<span style="color: rgba(0, 0, 0, 1)">mod_rewrite.so
注:如果没有该模块,则需要通过apxs工具安装模块。</span></pre>
</div>
<p>2、修改虚拟主机配置文件</p>
</div>
<div>
<div class="cnblogs_code">
<pre>vim httpd-<span style="color: rgba(0, 0, 0, 1)">vhosts.conf
# 1对1域名跳转
</span><VirtualHost *:<span style="color: rgba(128, 0, 128, 1)">80</span>><span style="color: rgba(0, 0, 0, 1)">
DocumentRoot </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/usr/local/html</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
ServerName www.server.com
ServerAlias www.aaa.com
</span><IfModule mod_rewrite.c><span style="color: rgba(0, 0, 0, 1)">
RewriteEngine on
RewriteCond </span>%{HTTP_HOST} ^<span style="color: rgba(0, 0, 0, 1)">www.aaa.com$
RewriteRule </span>^/(.*)$ http:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">www.server.com/$1 </span>
</IfModule>
<Directory /usr/local/html><span style="color: rgba(0, 0, 0, 1)">
require all granted
</span></Directory>
</VirtualHost><span style="color: rgba(0, 0, 0, 1)">
# 1对多域名跳转
</span><VirtualHost *:<span style="color: rgba(128, 0, 128, 1)">80</span>><span style="color: rgba(0, 0, 0, 1)">
DocumentRoot </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/usr/local/html</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
ServerName www.server.com
ServerAlias www.aaa.com
ServerAlias www.bbb.com
</span><IfModule mod_rewrite.c><span style="color: rgba(0, 0, 0, 1)">
RewriteEngine on
RewriteCond </span>%{HTTP_HOST} ^<span style="color: rgba(0, 0, 0, 1)">www.aaa.com$
RewriteCond </span>%{HTTP_HOST} ^<span style="color: rgba(0, 0, 0, 1)">www.bbb.com$
RewriteRule </span>^/(.*)$ http:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">www.server.com/$1 </span>
</IfModule>
<Directory /usr/local/html><span style="color: rgba(0, 0, 0, 1)">
require all granted
</span></Directory>
</VirtualHost><span style="color: rgba(0, 0, 0, 1)">
配置文件</span></pre>
</div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">注:跳转状态码
301代表永久重定向
302临时重定向
注:$1代表地址后跟的网络文件。
注:访问一个“</span>/<span style="color: rgba(0, 0, 0, 1)">”可以输入以下格式。
RewriteCond </span>%(HTTP_HOST)<span style="color: rgba(128, 0, 128, 1)">456</span><span style="color: rgba(0, 0, 0, 1)">.com
RewriteRule </span>/(.*)$ HTTP:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">123.com/$1 </span></pre>
</div>
<p>3、重新读取配置文件</p>
</div>
<div>
<div class="cnblogs_code">
<pre>apache2/bin/apachectl graceful</pre>
</div>
<p> </p>
</div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
</div>
</div><br><br>
来源:https://www.cnblogs.com/liujunjun/p/12497934.html
頁:
[1]