htaccess Rewrite重定向

最近在弄htaccess Rewrite重定向,很多语法生疏了,有找了一番,分享一下。 

RewriteEngine On|Off

RewriteEngine 可用On 或者 Off 打开或关闭rewrite功能。
rewrite configurations 不会继承,所以你得给每个你想用 rewrite功能的virtual host加上这个指令。

RewriteBase URL-path Continue reading »htaccess Rewrite重定向

wordpress应用之htaccess

1.实现wordpress防盗链

直接放个.htaccess文件到uploads目录下,参考了网上若干.htaccess的写法,最后我的版本如下:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !magustest.com [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteCond %{HTTP_REFERER} !testingjob.net [NC]
RewriteRule .*.(jpg|gif|png|bmp|swf|jpeg)$ xxx/forbid.png [R,NC,L]

RewriteCond 里面的第一行是说如果没有Referer,也就是直接访问,那么可以看。接下来的就是白名单,其中允许了谷歌,抓虾,鲜果等网站,那么在这些网站里面订阅我的博客的朋友也都能看到图片了。最后一行RewriteRule就是如果后缀名是那6个(都是吃流量的多媒体文件)的话,那么就显示为xxx/temp/forbid.png这个图片。

一般Linux类和Unix类虚机主机都支持重写.htaccess。这样子设置以后,在常见的阅读器中查看博客文章也能看到图片,同时也能有效地防止盗链图片而导致的流量超标。 Continue reading »wordpress应用之htaccess

(转)总结新手容易犯的htaccess文件五大优化错误

1、.htaccess文件是Apache的配置文件,因此直接决定了此文件使用IIS构建的网站无效。

在官方的说明中,.htaccess是网站的一个分布式配置文件,分布式顾名思义,就是可以分布在各个不同的目录下面,每个文件都有其不同的作用域。比如将文件放在“admin”目录下,那么这个配置文件只对admin及其子目录下的文件生效。

然而有很多初入门道的朋友并不了解,因此不知道如何处理这个配置文件。在此我告诉大家,如果你想要整个网站都生效,就将此文件建立在网站根目录下即可。

2、此文件极易造成服务器500错误,并且大部分原因都是Windows文件编码错误。

由于该文件是原生Linux下的文件,因此在Windows下不能使用系统自带的记事本程序创建这个文件。但是,可以通过编码转换,去掉 BOM等多余的内容。但是,我们强烈建议使用Notepad2等富文本编辑器来创建这个文件,并且将之保存为UTF-8这种国际编码格式。当然,也可以使 用一些在线htaccess编辑器来自动创建这个文件,文后将会有相关介绍。

3、.htaccess文件设置图片防盗链时,替换的目标图片一定不能是当前域下的图片文件。否则将会造成循环错误。

很多朋友会使用.htaccess文件达到图片防盗链的效果,减少空间由于图片盗链浪费的流量。但是,却忽视了这一点:不能将替换后的目标 图片放在本域中。原因如下:本域使用了图片防盗链功能,因此,所有通过其它域访问本域的图片地址都会被重写为目标地址,但如果目标地址也是本域中的图片, 就会造成循环错误,甚至可能导致客户端浏览器假死。 Continue reading »(转)总结新手容易犯的htaccess文件五大优化错误

htaccess实现子目录指向主域名

今天想为blog加一个重定向,访问主域名直接定向到blog目录,即主域名绑定子目录。之前采用index.html里的 meta和window.location ,好像对SEO不好,而且有明显的转向等待时间。所以搜索了一下其他解决方案。找到如下代码,需要借助 htaccess文件。 # .htaccess main domain to subdirectory redirect # Copy and paste the following code into the .htaccess file # in the public_html folder of your hosting account # make the changes to the file according to the instructions. # Do not change this line. RewriteEngine on # Change yourdomain.com to be your main domain. RewriteCond %{HTTP_HOST} ^(www.)?yourdomain.com$ # Change ‘subdirectory’ to be the directory you will use for your main domain. RewriteCond %{REQUEST_URI} !^/subdirectory/ # Don’t change this line. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Change ‘subdirectory’ to be the directory you will use for your main domain. RewriteRule ^(.*)$ /subdirectory/$1 # Change yourdomain.com to be your main domain again. # Change ‘subdirectory’ to be the directory you will use for your main domain # followed by / then the main file for your site, index.php, index.html, etc. RewriteCond %{HTTP_HOST} ^(www.)?yourdomain.com$ RewriteRule ^(/)?$ subdirectory/index.php [L] .htaccess指向index.php 最末一句使得首页访问yourdomain.com指向 blog的index.php 修改之后,再通过youdomain.com访问会直接跳转(并非URL跳转)到blog目录,如果blog是采用wordpress的话,如果想以后的链接URL中没有/blog/ 的话可以在后台Setting里的General 里修改URL 为youdomain.com,这样绑定就非常完美的完成了。