初级url重写指南- apache 2.2中文版参考手册Primary URLRewrite Guide -Apache 2. 2 Chinese version reference manual Note: according to your server configuration, it may benecessary to make some small changes, for example here, toincrease the [PT] mark in additional to enable mod_alias andmod_userdir, or in order to adapt to the directory level(.Htaccess) configuration for the server level rules arerewritten. A specific rule set should be thoroughly understoodbefore considering the application so that the problem can beavoided.
Normalized URL
Description:
On some web servers, a resource will have multiple URL. Inpractice and publishing, the standard URL should be used, whileothers are abbreviated or only used internally. No matter whatform of URL users use in the request, they should eventuallysee the standard URL.
Solution
Perform an external HTTP redirection to all non-standard URLto change its display and subsequent request in the browseraddress bar. The rule set in the following example replaces the/~user with the standard /u/user, and modifies the suffixslashes omitted by /u/user.
Rewr iteRul e ^/~ ( [^/]+) /?/ (. *) u/$1/$2 [R]Rewri teRule ^/u/
( [^/]+) $/$1/$2 / [R]
Normalized host name
Description:
The purpose of this rule is to force the use of a specific hostname instead of other names. For example, if you want to forcethe use of www.example.com instead of example.com, you canmodify it on the basis of the following solution:
Solution
Sites running on non 80 ports
Rewr iteCond%{HTTP_HOST} ! ^ful ly\.qual if ied\.domain\.name[NC]Rewrit eCond%{HTTP_HOST} ! ^$Rewri teCond%{SERVER_PORT} !^80$Rewrit eRule ^/ (. *)http://ful ly.qual if ied.domai n.name:%{SERVER_PORT}/$1 [L, R]Sites running on 80 ports
Rewr iteCond%{HTTP_HOST} ! ^ful ly\.qual if ied\.domain\.name[NC]RewriteCond%{HTTP_HOST} ! ^$Rewri teRule ^/ (. *)http://ful ly.qualif ied.domain.name/$1[L, R]
Mobile DocumentRoot
Description:
Typically, the DocumentRoot of the web server corresponds
directly to URL "/", but it is often not at the highest level.For example, you want visitors to enter the /about/ directoryfirst when they enter the site. You can use the rule set givenbelow.
Solution
Just redirect "/" to "/about/":
Rewr iteEngine onRewriteRule /about/ ^/$[R]
You can also use the RedirectMatch directive to solve theproblem:
RedirectMatch http://example.com/e/www/ ^/$
Ending slash
Description:
Each network has a bitter end to slash problem referencedirectory, if omitted, the server will produce an error,because if the request is "/~quux/foo" instead of"/~quux/foo/",the server will find a file called foo, and it is a directory,so wrong. In general, you can use this FAQ entry approach tosolve problems. But sometimes rewriting rules are needed tosolve problems, for example, after applying many complexrewriting rules.
Solution
The solution to this delicate problem is to automatically addsuffix slashes to the server. In order to achieve the goal, anexternal redirection must be used to enable the browser toprocess subsequent requests correctly, such as requests forpictures. If you execute only one internal rewrite, it may bevalid only for the directory page, but not for the page witha relative URL, because the browser has the possibility ofrequesting embedded objects. For example, if there is noexternal redirection, the request for image.gif in the/~quux/foo/index.html page becomes a request to the
/~quux/image.gif! So, it should be written like this:rewriteengine onrewritebase / ~ quux / RewriteRule ^ foo$ foo/ [ R ]
又懒又疯狂的做法是把这些写入其宿主目录中的顶级.htaccess中rewriteengine onrewritebase / ~ quux / Rewri teCond % { } - Drequest_filename RewriteRule ^ 。 + 【^ / ] 1美元/ [ R ]但是这样一来会增加处理上的开销。
将用户主目录移动到不同Web服务器
描述
通常许多网管在建立一个新的Web服务器时都会有这样的要求重定向一个Web服务器上的所有用户主目录到另一个Web服务器。解决方案
很简单在老的Web服务器上重定向所有的” / ~用户/ anypath”到” HTTP / / / ~New Server用户/ anypath” rewriteengine onrewriterule ^ /~ + HTTP ///~New Server1美元[ R ]
在多个目录中搜索页面
描述
有时会有必要使Web服务器在多个目录中搜索页面对此下或者其他技术无能为力。
解决方案
编制一个明确的规则集以搜索目录中的文件
RewriteEngine on #首先尝试在目录中寻找找到即停RewriteCond/你/ docroot /目录/ % { request_fi lename } - frewriterule ^
+ /你/ docroot /目录/ 1美元[1] #然后尝试在DIR2中寻找找到即停RewriteCond/你/docroot/DIR2/% {request_filename}- frewriterule ^ + /你/ docroot / DIR2 / 1美元[1] #再找不到就继续寻找其他的别名或不同目录RewriteRule ^ + - [葡]按照URL的片段设置环境变量
描述
希望保持请求之间的状态信息又不希望使用CGI来包装所有页面只是通过分离URL中的有用信息来做到。
解决方案
可以用一个规则集来分离出状态信息并设置环境变量以备此后用于x s s i或CGI。这样一个” /富/ S = j av a /酒吧/”的URL会被解析为” /食品/酒吧/” 而环境变量状态则被设置为“j av a” 。rewriteengine onrewriterule ^ * / S = [ ^ / ] + / * 1美元/ 3美元[ E =现状 2美元]
虚拟用户主机
描述
如果需要为用户用户名支持一个WWW.用户名。host.domai n.com的主页但不在此机器上建虚拟主机而是仅用在此机器上增加一个DNS记录的方法实现。
解决方案
仅能对包含”主持人 “头的HTTP / 1. 1请求实现。可以使用以下规则集内部地将http://www.username.hos t.com/anypath重写为/家/用户名/ anypathrewriteengine onrewritecond% { http_host } ^WWW\。 [ ^ ] +。主持人。 COM RewriteRule ^ + % { } 1美元http_host [C]R ewr i t e Ru l e ^ WWW \。 + + \\主机* /家庭/ 1美元2美元为外来访问者重定向用户主目录
描述
对不是来自本地域ourdoma i n. com的外来访问者的请求重定向其用户主目录URL到另一个Web服务器www. s omewh ere.com有时这种做法也会用在虚拟主机的配置段中。
解决方案
只须一个重写条件rewriteengine onrewri tecond%{remote_host } ^ 。 +。 ourdomain\。 COM Rewrit eRule ^ / ~。 + HTTP / /www. somewhere。 COM /1美元[ R ]
重定向锚
描述
By default, redirected to aHTML anchor is not feasible, because'#' will be transferred to '%23' . This, in turn, breaks theredirection.
Solution
Using the [NE] flag in the RewriteRule instruction (notescaped) .
Time dependent rewriting
Description:
In the page content needs to change according to the time ofthe occasion, such as redirection of specific pages, etc. , many
network management still uses CGI script method, how to usemod_rewrite to achieve it?
Solution
There are many variables called TIME_xxx that can be used inrewriting conditions, and the combination of dictionary based"<STRING", "=STRING" and ">STRING" can be used to implementtime dependent rewriting:
Rewr iteEng ineonRewri teCond%{TIME_HOUR}%{TIME_MIN} >0700Rewrit eCond%{TIME_HOUR}%{TIME_MIN} <1900Rewri teRule
^foo\.html$foo.day.htmlRewriteRule
^foo\.html$foo.night.html
In this case the foo.html at 07:00-19:00 time point tofoo.day.html, and in the rest of the time to foo.night.html,the home page is a good function. . .
Forward compatibility of YYYY to XXXX
Description:
How to maintain the forward compatibility of URL (still virtual)after changing a large number of document.YYYY files todocument.XXXX (e.g. , .Html to.Phtml)?
Solution
Just rewrite the file according to the reference file and test
whether the file with the new extension exists or if it exists,use the new one, otherwise it will still be used.
# document.html will be rewritten as document.phtml backwardscompatible set of rules#if and only if document.phtml has timeand there is no document.html RewriteEngine onRewriteBase/~quux/# shear and remember basenameRewriteRule ^ (. *)\.html$$1 [C E=WasHTML:yes]#, if there is then rewritten asdocument.phtmlRewri teCond%{REQUEST_FILENAME} .phtml ^
-fRewriteRule (. *) $$1.phtml or [S=1]# to return to theprevious basenameRewri teCond%{ENV:WasHTML} ^
^yes$RewriteRule (. *) $$1.html
Content processing
From old to new (internal)
Description:
Assuming that the file foo.html has been renamed to bar.html,you need to be backward compatible with the old URL, that is,the user can still use the old URL, and feel that the file hasbeen renamed.
Solution
Rewrite the old URL into a new one internally through thefollowing rules:
Rewr iteEngine onRewriteBase /~quux/Rewr iteRul e ^ foo
\.html$bar.Html
热网互联怎么样?热网互联(hotiis)是随客云计算(Suike.Cloud)成立于2009年,增值电信业务经营许可证:B1-20203716)旗下平台。热网互联云主机是CN2高速回国线路,香港/日本/洛杉矶/韩国CN2高速线路云主机,最低33元/月;热网互联国内BGP高防服务器,香港服务器,日本服务器全线活动中,大量七五折来袭!点击进入:热网互联官方网站地址热网互联香港/日本/洛杉矶/韩国cn2...
virmach怎么样?virmach家这几年非常火,从商家的黑五闪购开始,以超低的价格吸引了大批的国人客户,而且商家的机器还是非常稳定的,站长手里的4.75刀年付已经用了两年了,非常稳定,不过商家到国内的线路一般,目前商家新上了夏季优惠促销,价格低到发指,年付7.2美元起,商家反馈将在9月开始更换AMD+NVMe平台,这个消息从年初就有了,不过一直没有更换,目前这个时间也不确定是否准确。点击进入:...
陆零网络是正规的IDC公司,我们采用优质硬件和网络,为客户提供高速、稳定的云计算服务。公司拥有一流的技术团队,提供7*24小时1对1售后服务,让您无后顾之忧。我们目前提供高防空间、云服务器、物理服务器,高防IP等众多产品,为您提供轻松上云、安全防护 为核心数据库、关键应用系统、高性能计算业务提供云端专用的高性能、安全隔离的物理集群。分钟级交付周期助你的企业获得实时的业务响应能力,助力核心业务飞速成...