如何将多个url重定向.htaccess301重定向吗

Access denied |
used Cloudflare to restrict access
Please enable cookies.
What happened?
The owner of this website () has banned your access based on your browser's signature (a451ca-ua98).URL重写&htaccess文件写法的10个技巧
“.htaccess”文件往往被网页设计师们忽略。假如你还不知道什么是htaccess的话,你可以去查一下wikipedia。它是目录级别的配置文件,有常用的网页服务器支持这种配置,例如Apache。下面我将列出10条有用的.htaccess配置技巧。
那些盗用了你的内容,还不愿意自己存储图片的网站是无耻的。你可以通过以下配置来放置别人盗用你的图片:
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?/.*$
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]
2. 防止目录浏览
有时候目录浏览是有用的,但大部分情况会有安全问题。为了让你的网站更安全,你可以通过htaccess文件来禁用这个功能:
Options All -Indexes&
3. SEO友好的301永久重定向
这一招是我常用的。每次我更改网站URL结构的时候,我都会做301重定向:
Redirect 301 /article.html
/archives/article 4. 显示个性化的 404 错误页面
当用户访问了一个不存在的页面的时候,网页服务器会显示“404 file not
found”错误。有很多CMS可以让你设置自定义的错误页面,但最简单的方法是更改htaccess:
ErrorDocument 404 /404.html&
5. 设置目录的默认页面
假如你需要为不同的目录设置不同的默认页面,你可以很容易的通过 .htaccess 实现:
DirectoryIndex about.html
6. 基于referer来限制网站访问
站长通常不会限制网站访问,但是当你发现有一些网站尽给你带来垃圾流量的话,你就应该屏蔽他们:
&IfModule mod_rewrite.c&
RewriteEngine on& RewriteCond %{HTTP_REFERER}
RewriteCond %{HTTP_REFERER}
RewriteRule .* & [F]
&/ifModule&
7. 限制PHP上传文件大小
这招在共享空间的服务器上很有用,可以让我的用户上传更大的文件。第一个是设置最大的上传文件大小,第二个是设置最大的POST请求大小,第三个PHP脚本最长的执行时间,最后一个是脚本解析上传文件的最长时间:
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200&
8. 压缩文件
你可以通过压缩文件来减少网络流量,也页面装载时间:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
9. 缓存文件
这一点还需要解释吗?
&FilesMatch
“.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$”&
Header set Cache-Control “max-age=2592000〃
&/FilesMatch&
10. 添加尾部的反斜杠
我并不确定,但是很多文章,很多人都说添加尾部反斜杠有益于SEO:
&IfModule mod_rewrite.c&
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
&/IfModule&
====================
.htaccess基本语法和应用
.htaccess是Apache服务器的一个非常强大的分布式配置文件。
正确的理解和使用.htaccess文件,可以帮助我们优化自己的服务器或者虚拟主机。
如何启用htaccess
以windows为例,进入apache/conf目录,找到httpd.conf文件,去掉
LoadModule rewrite_module modules/mod_rewrite.so
前面的#,然后设置目录属性AllowOverride All,重启apache即可
下面是一个典型的htaccess文件
# 开启URL重写
RewriteEngine on
# URL重写的作用域
# RewriteBase /path/to/url
# 满足怎样的条件
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
# 应用怎样的规则
RewriteRule .? %{REQUEST_URI} [R=301,L]
来看看RewriteCond,首先有一个%,因为{HTTP_HOST}是一个apache变量,需要用%来指示。从!开始就是匹配的条件,支持
正则。!表示不等于,这句话的意思就是:如果HTTP_HOST不是。后面的[NC](no
case)表示忽略大小写,常见的还有
[L](last):终止一系列的RewriteCond和RewriteRule
[R](redirect):触发一个显示的跳转,也可以指定跳转类型,如[R=301]
[F](forbidden):禁止查看特定文件,apache会触发403错误
图片防盗链
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/ [NC]
RewriteRule \.(gif|jpg|png)$ - [F]
由于是基于HTTP_REFERER的验证,所以只能防止一般的图片盗链,因为HTTP_REFERER是比较容易伪造的
自定义404错误页面
如果用户输入了一个不存在的url,那么就显示自定义的错误页面
ErrorDocument 404 /404.html
# 其他同理
ErrorDocument 500 /500.html
处理移动过的文件
Redirect 301 /old.html /new.html
# 也可以是下面这样
RewriteRule /old.html /new.html [R=301,L]
# 如果想隐式跳转(URL地址不变,但实际上内容是其他URL的),就使用下面的
RewriteRule /old.html /new.html [L]
对于RewriteRule还有好多文章可以做,比如
# 把html后缀的url链接到php文件
# $1指代的是前面第1个用括号括起来的内容
RewriteRule ^/?([a-z/]+)\.html$ $1.php [L]
# 或者把旧文件夹的内容链接到新文件夹
RewriteRule ^/?old_directory/([a-z/.]+)$ new_directory/$1 [R=301,L]
# 隐藏文件名
RewriteRule ^/?([a-z]+)$ $1.php [L]
禁止显示目录列表
如果目录里没有index文件,又没有对该目录做过特别的处理,尤其是windows主机,那么该目录里的内容就会显示出来,这时可以在根目录创建
一个.htaccess文件,然后写上
Options -Indexes
# 就这么一句就搞定了
阻止/允许特定IP/IP段
# 禁止所有IP,除了指定的
order deny,allow
deny from all
# 如果想允许IP段,如123.123.123.0 ~ 123.123.123.255,则
# allow from 123.123.123.
allow from 123.123.123.123
ErrorDocument 403 /page.html
&Files page.html&
allow from all
#如果想禁止特定IP
deny from 123.123.123.123
添加MIME类型
AddType video/x-flv .flv
# 如果设置类型为 application/octet-stream 将提示下载
AddType application/octet-stream .pdf
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。URL重定向之二.htaccess文件内容解析和rewrite规则
.htaccess可以做大量的事情,包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件。
创建.htaccess文件
创建.htaccess文件最好使用ue Notepad++
等专业的编辑器。如果使用window的记事本写可能会出现编码上的错误,文件写完后在window系统上可能不支持直接保存为
.htaccess文件(它事实上没有文件名,只有一个由8个字母组成的扩展名),你可以将文件保存为&“.htaccess”的文件名,如果还不行可以先随便保存一个文件名,然后上传到服务器上用ftp工具重命名。
也可以直接从网站上生成.htaccess 文件 &网址为
配置自定义的错误页面。
.htaccess 文件最常用的功能之一就是配置404 未找到文件页面。
当访问一个url路径是,如果rul为一个目录,服务器接受地址会自动查找并返回默认缺省是首页文件,如index.php、index.html等等,如果目录中没有找到缺省的首页文件,则会返回文件夹里的文件列表(必须开启目录浏览的情况下)或直接返回一个404未找到文件错误,如果url结尾是一个文件,当服务器为找到该文件是直接返回一个404错误了,这对浏览者的体验和搜索引擎的抓取是不利的,所以我们要改变一下配置文件,当服务器返回一个404错误时,我们把404错误修改为一个自己制作的提醒类的文件返回,这个文件里也可以包含连接,这样对用户和搜索引擎有很好的体验。
配置的格式为:
ErrorDocument &errornumber
&/url/file.html
举例,如果网站跟目录有个文件夹error/文件夹里放着是网站错误的文件。其中有个404.html文件,我想使用它作为404
error 的页面。格式为:
ErrorDocument 404 /error/404.html
不难看出语法格式为:
ErrorDocument 错误代码 /目录名/文件名.扩展名
常见的客户端返回码及其含义:
400 错误的请求
401 认证错误
402 需要付费
403 禁止访问
404 未找到
405 方法不允许
406 不可接受
407 需要代理认证
408 请求超时
常见的客服务器返回码及其含义:
500 内部服务器错误
改变缺省的Index页面
你可以把缺省的 index.html, index.php 或 index.htm 改成其它页面。
DirectoryIndex business.html &
可以列出多个,顺序表明它们之间的优先级别
DirectoryIndex business.html index.php index.html
禁止目录浏览
由于URLwie目录结尾且网站的该目录里没有缺省的首页,这时服务器会返回这个目录下文件的列表。这会给网站留下隐患,
缺省禁止服务器对外显示目录结构,反之亦然。
# 禁止目录浏览 &
Options All -Indexes &
# 开放目录浏览
Options All +Indexes &
重命名htaccess 文件
你可以通过重命名htaccess文件来对其进行保护。
AccessFileName htacc.ess
控制用户访问,阻止/允许特定的ip访问
封禁一个ip地址
deny from 1.5.48.5
封禁一个ip地址段 封禁的是1.5.48.0~1.5.48.255
deny from 1.5.48.
封禁所有用户
deny from all
允许和封禁相反,吧deny 改为allow即为允许
allow from 1.5.48.
allow from 1.5.48.2
allow from all
重定向一个页面
.htaccess最有用的功能之一就是将请求重定向到同站内或站外的不同文档。这在你改变了一个文件名称,但仍然想让用户用旧地址访问到它时,变的极为有用。
使用.htaccess文件重定向
Redirect a.html
###访问/old/a.html
实际上被重定向到/new.a.html
使用.htaccess重定向整个网站的目录。
Redirect /old &htt:///new
###当你访问原来网站上的文件、图片、js等资源的时候都被重定向到新的网址,如访问/old/ad/a.html
实际上被重定向到/new/ad/a.html文件上
利用 .htaccess 防止盗链
如果不喜欢别人在他们的网页上连接自己的图片、文档的话,也可以通过htaccess的指令来做到。
所需要的指令如下:
RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?/.*$
RewriteRule .(gif &jpg)$ & [F]
如果觉得让别人的页面开个天窗不好看,那可以用一张图片来代替:
RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?/.*$
RewriteRule .(gif &jpg)$
/替代图片文件名 [R,L]
密码保护的.htaccess文件、
密码保护的.htpasswd文件、配置.htaccess文件输入的用户名和密码、配置.htaccess文件直接访问加密网站
请跳转帕兰映像的这篇文章&
6、通过htaccess开启网站图片缓存
  某些虚拟主机限制了网站的流量,如果浏览器每次都从服务器下载最常用的图片文件,将会浪费大量的带宽。因此可以开启图片缓存,浏览器在缓存过期前将会自动从缓存区载入图片文件。此功能在文件中加入以下代码:
  Header set Cache-Control “max-age=3600&P
  需要注意的是,上面的3600单位为秒,即超时时间,上图中的gif等为图片文件后缀,表示对这些文件生效。如果使用自动生成工具,为了开启此选项,请将“开启站点的图片缓存”选项卡选择一个超时时间。目前有十分钟、一小时、一天等选项可供设置。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。分享到各大社区
选择打赏方式
网站死链有时候是不可避免的,网站栏目页或者文章内页因为某些原因调整了路径,如果想保留之前的链接就需要做301跳转。网站首页的301重定向容易做,不过内页的301就相对复杂一些,不过修改.htaccess文件可以轻松完成这项工作。
htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。在LINUX主机FTP文件中都会有一个.htaccess配置文件用来设置伪静态规则,在前面的一篇文章《网站出现死链了内页301重定向帮你解决》介绍了如何通过修改.htaccess文件实现单页面的301重定向,本文主要介绍如何通过正则表达式实现批量内页跳转。
在写之前我们先来认识几个简单的符号所代表的含义
1、(.+) 代表任意字符(包括汉字、英文字母等)
2、(\d+)代表是任意数字(仅仅是阿拉伯数字)
3、$1、 $2 、$3 、$4表示的是对前面出现的变量的引用(你理解这个意思就行了)
一、简单的数字形式链接跳转
变更/%year%/%monthnum%/%day%/%postname%/ 为 /%postname%.html
/%year%/%monthnum%/%day%这个路径表示的意思是“年、月、日”3层路径,%postname%是名称。现在需要去掉“年、月、日”这几个多余的层级,变成http:///%postname%.html这种形式。
重定向语句:
RedirectMatch 301 ^/([0-9]+)/([0-9]+)/([0-9]+)/(.*)/$ /$4.html &
RedirectMatch 301 ^可以认为是规则的开始;
中间的三个([0-9]+)分别代表数字“%year%、%monthnum%、%day%”;
(.*)代表最后文章的名称或者ID即“%postname%”;
这四个变量可以赋予编号$1、 $2 、$3 、$4,(.*)和$4.html中间的$可以理解为新老网址的连接符号(注意:$ &/$4.html这个符号$和后面的/之间有空格)。
我们要做的就是前面的日期都不要,只留最后的文章名,然后在结尾后面加上.html,所以修改后前面的三个([0-9]+)都不要,只保留最后的(.*),通过下图我们知道(.*)代表$4,所以后面的规则只需写上$4.html就行了。
三、变更http:///postname/lizi/ 为 http:///postname/lizi.html
重定向语句:
RedirectMatch 301 ^/(.*)/(.*)/$ /$1/$2.html &
四、变更http:///lizi/ 为 http:///archives/lizi.html
重定向语句:
RedirectMatch 301 ^/(.*)/$ /archives/$1.html &
五、变更http:///lizi 为 http:///lizi.html
重定向语句:
RedirectMatch 301 ^/(\d+)$ /$1.html &
写重定向语句时注意哪些方面:
首先你要弄清楚自己原网址中需要改变的部分是什么形式,是数字还是字母,然后在重定向语句前面的部分用正则表达式对应的符号来表示,(.+) 代表任意字符(包括汉字、英文字母等),(\d+)代表是任意数字(仅仅是阿拉伯数字),然后在语句后面分别用对应符号$1、 $2 、$3 、$4、$5..表示,最后用链接符号$,来链接新旧网址。
注意:连接符号$和后面的新网址之间有一个空格,而且,如果原网址最后有/的话,在$之前也必须有一个/。
上面的代码在.htaccess文件中,也可以放在这个代码&IfModule mod_rewrite.c&.....&/IfModule&之外,比如这样:
RedirectMatch 301 ^/(\d+)$ /$1.html &
# BEGIN WordPress &
&IfModule mod_rewrite.c& &
RewriteEngine On &
RewriteBase / &
RewriteRule ^index\.php$ - [L] &
RewriteCond %{REQUEST_FILENAME} !-f &
RewriteCond %{REQUEST_FILENAME} !-d &
RewriteRule . /index.php [L] &
&/IfModule& &
版权声明:若无特殊注明,本文皆为《
》原创,转载请保留文章出处。
本文链接:名哥教你用.htaccess批量实现网站内页301重定向跳转 /post-298.html
正文到此结束
热门指数:
热门指数:
热门指数:
你肿么看?
已有4条吐槽
&Xiaomi 3S& &未知浏览器
&Windows 10 x64& &Firefox 50.0
嗯,感谢楼主的分享!希望多多更新下哈
&Windows 10 x64& &Google Chrome 45.0.
@松松软文发布:欢迎松哥来访
&Windows XP& &Google Chrome 45.0.

我要回帖

更多关于 .htaccess 目录重定向 的文章

 

随机推荐