https部署折腾(一):.htaccess配置重定向参数RewriteCond和RewriteRule解释

对于完成一件比较麻烦的事,做完后是一定要写教程的,呃,其实应该是记录过程,也不是想教谁,只是希望以后自己再用的时候还找得到用法。话说过程是惊险刺激的,有时兴奋,有时却恨不得去屎… 而扫尾工作就是最枯燥到的了,比如现在… 但是事后不总结、不记录,那是永远无法成长的。就像我这次部署https一样,其实那篇发泄文(见《吐个槽,糟心的一天》)写完就打算放弃部署https了,结果文章结尾的时候提示了自己一个很重要的问题,最后找到了方法部署成功… 这个后期再说。

今天玩了下.htaccess,所以提前把这个写了,相当于是部署https的周边技术吧,有时间写一点,最后再汇总成如何部署https,我觉得这样不错,好了,说了这么多闲话了,开始教程吧。

.htaccess对于我来说就是用来做301重定向的,它的主要作用貌似也就是这个了。主要靠写在文件中的语句执行重定向,比如

<IfModule mod_rewrite.c> 
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

这个是一个基本配置,将“/”和404重定向到/index.php去,我们可以看到语句有好几种,比较关键的是RewriteCond和RewriteRule。

先举个栗子:

RewriteCond %{HTTP_HOST} ^(juw)end(s)\.com.*$ [NC]
RewriteRule aa(.*)cc(.*)$ http://ww\./$2/$1/%1/%2 [R=301,L]

看起来是有点复杂,先看结果:

网址输入地址:juwends.com/aaa/bbb/ccc/?p=1
重定向地址:http://ww.///a/bbb/c/juw/s?p=1

继续阅读