所以凡是使用linux的主机,我都会定义个301重定向,以利于SEO。昨天照例把htaccess传到服务器上,没想到传上后网站无法访问,一删除就恢复正常。看了很多遍代码,也没发现什么问题。 干脆就重新学习下URL重写方法。
	规范化URL
	描述:
	在有些web服务器上,一个资源会拥有多个URL。在实际应用和发布中应该使用的是规范的URL,其他的则是简写或者只在内部使用。无论用户在请求中使用什么形式的URL,最终看见的都应该是规范的URL。
	解决方案:
	对所有不规范的URL执行一个外部HTTP重定向,以改变它在浏览器地址栏中的显示及其后继请求。下例中的规则集用规范的/u/user替换/~user,并修正了/u/user所遗漏的后缀斜杠。
	RewriteRule ^/~([^/]+)/?(.*) /u/$1/$2 [R]
	RewriteRule ^/([uge])/([^/]+)$ /$1/$2/ [R]
	规范化主机名
	
	描述:
	这个规则的目的是强制使用特定的主机名以代替其他名字。比如,你想强制使用www.example.com代替example.com,就可以在以下方案的基础上进行修改:
	解决方案:
	对运行在非80端口的站点
	RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name [NC]
	RewriteCond %{HTTP_HOST} !^$
	RewriteCond %{SERVER_PORT} !^80$
	RewriteRule ^/(.*) http://fully.qualified.domain.name:%{SERVER_PORT}/$1 [L,R]
对运行在80端口的站点
	RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name [NC]
	RewriteCond %{HTTP_HOST} !^$
	RewriteRule ^/(.*) http://fully.qualified.domain.name/$1 [L,R]
	参考了上面的规则,发现自己原先的代码里少了个!号,加上就恢复正常了。
	Options +FollowSymlinks
	RewriteEngine on
	RewriteCond %{HTTP_HOST} !^do-javascript.com [NC]
	RewriteCond %{HTTP_HOST} !^$
	RewriteRule ^/(.*) http://www.do-javascript.com/$1 [r=301,nc]
