青岛SEO详解.htaccess 和httpd.ini区别【雪无痕seo团队】

青岛SEO详解.htaccess 和httpd.ini区别【雪无痕seo团队】:专业网络推广,seo优化,百度优化,网站优化,整站优化,网络营销,网站推广,关键词优化,网站排名优化,是seo外包,seo服务,seo顾问,seo培训,seo公司,雪无痕seo免费推广平台分享seo技术,seo教程,seo推广,关键词排名优化,seo排名软件及seo优化工具【雪无痕seo团队】,针对百度、谷歌(Google)、360优化、搜狗及神马等搜索引擎提供专业网络推广,seo优化,百度优化,网站优化,整站优化,网络营销,网站推广,关键词优化,网站排名优化,是专业的seo外包,seo服务,seo顾问,seo培训,seo公司,免费推广平台分享seo技术,seo教程,seo推广,关键词排名优化,seo排名软件及seo优化工具.

青岛SEO详解.htaccess 和httpd.ini区别

httpd.ini是iis的配置文件。windows主机服务器的网站一搭建在虚拟机上,当我们用户习惯了apache下的.htaccess的时候,很难想象windows主机上怎么实现它的强大功能。实际上windows主机服务器上的虚拟主机可以用httpd.ini文件来充当.htaccess文件在Linux主机空间的作用,不过httpd.ini的功能完全没有.htaccess那么强大,规则上没那么丰富,细节上有很大区别.


.htaccess是什么?

.htaccess叫分布式配置文件,它提供了针对目录改变配置的方法——在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。并且子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。一般来说,如果你的虚拟主机使用的是Unix或Linux系统,或者任何版本的Apache网络服务器,从理论上讲都是支持.htaccess的。


青岛SEO详解.htaccess 和httpd.ini区别

如何建立.htaccess?

在我们使用的windows主机上创建.htaccess文件是很困难的。写文件倒很容易,你只需要在文字编缉器(例如:记事本)里写下适当的代码。困难的是文件的保存,因为.htaccess是一个古怪的文件名,其实它并没有文件名,只有一个由8个字母(htaccess)组成的扩展名,而在windows系统中这是无法接受的文件名。因此,这里有3个方法可以实现。

方法一:保存文件的时候将文档保存成名为“.htaccess” (包括引号)或者htaccess.txt亦或者1.htaccess。再将其上传到服务器上,之后直接使用FTP软件来重命名。

方法二:保存文件的时候选择文件—>另存为,保存类型选所有文件,然后文件名输入.htaccess ,这样就OK啦

方法三:直接在你的Unix或Linux虚拟主机上建立。


httpd.ini又是什么呢?


httpd.ini是IIS的配置文件。windows主机器的网站以搭建在虚拟主机上,当我们用习惯了apache下的.htaccess的时候,很难想象windows主机上怎么实现它的强大功能。实际上windows主机服务器上的虚拟主机可以用httpd.ini文件来充当.htaccess文件在Linux主机空间的作用,不过要令你失望的是,httpd.ini的功能完全没有.htaccess那么强大,规则上没有那么丰富,细节上也有很大的不同。
要在你的空间使用httpd.ini首先得确定你的空间是否支持该功能,可以询问服务商,如果是企业用户,可以要求服务商为你。

我们来看一段简单的httpd.ini内容实现的功能,从这段代码开始:
[ISAPI_Rewrite]
RewriteRule /(.*).html /index.php?p=$1 [L]

上面这段小代码不难让你想象它的功能,即先开启重写功能,然后执行一条规则,将根目录下后缀为.html的网址内容和/index.php?p=后面的内容匹配。你可以用这个网址来访问这个真实的地址。


青岛SEO详解.htaccess 和httpd.ini区别

     网站建设技术不断在变化,早期学习建站的时候都是用的动态页面,后来又流行生成静态的效果。但是如果由于网站信息量大,生成静态之后网站的体积将会特别的庞大,如果我们要修改模板,生成全站静态估计够吃力。目前较为流行的方式就是伪静态。前段时间朋友帮我做了一个网站目录程序,我也加到博客的二级目录中。

  程序自带的是动态页面,今天我尝试修改伪静态,其实也很简单,具备几个条件即可实现。

  第一,如果是用虚拟主机,确认是否支持rewrite伪静态httpd.ini文件

  第二,我们需要把程序中的动态页面链接都换成伪静态的效果,比如showurl.asp?id=123需要换成showurl-123.html

  第三,添加httpd.ini文件

[ISAPI_Rewrite] 
# 3600 = 1 hour 
CacheClockRate 3600 
RepeatLimit 32 
RewriteRule ^/52qingdao\/showurl\-(\d+)\.html$ /52qingdao\/showurl\.asp\?id\=$1

  第四,把httpd.ini文件放入网站根目录中。打开网站试试效果。



HTACCESS目录规则
一般我们将.htaccess文件放置在网站的根目录,控制所在目录及所有子目录,而如果放置在子目录中,会受上级目录中.htaccess文件影响,是不起任何作用的。

举几个例子,以下部分引用维基百科。

自定义错误页面(直接拷贝即可)

ErrorDocument 404 /error-pages/not-found.html
ErrorDocument 503 /error-pages/service-unavailable.html

————————————————————————-
IP禁止

Order allow,deny
Deny from 123.45.67.8
Deny from 123.123.7
Allow from all

上面能禁止IP地址在123.45.67.8以及IP地址开头为123.123.7的任何人。例如123.123.74.42 就不能得到访问。
————————————————————————-
变更默认首页

DirectoryIndex homepage.html

————————————————————————-
去除页面广告(不一定适用所有免费空间)

LayoutIgnoreURI *.php
LayoutIgnoreURI *.cgi
LayoutIgnoreURI *.htm
LayoutIgnoreURI *.html
LayoutIgnoreURI *.txt

————————————————————————-
页面跳转

Redirect page1.html page2.html

如果某人访问 http://www.example.com/page1.html,他将被跳转到(带有HTTP状态代码302)的http://www.example.com/page2.html
————————————————————————-
服务器内置SSI

AddType text/html .shtml
AddHandler server-parsed .shtml
Options Indexes FollowSymLinks Includes

————————————————————————-
防止图片热链
后面的 .htaccess规则使用了mod rewrite。
特别域名

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?baddomain1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?baddomain2\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?baddomain3\.com [NC]
RewriteRule \.(gif|jpg)$ http://www.example.com/hotlink.gif [R,L]

非特别域名

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.example.com/hotlink.gif [R,L]

除非 example.com有这个图片,浏览器才能看到hotlink.gif.
注意:Hotlink热链保护使用 .htaccess 依赖客户端在http GET请求中发送正确的”提交”值。像尝试使用Windows Media Player发送空白的提交到.htaccess 来保护电影档案是无效的。

禁止.htaccess文件被查看
在.htaccess文件中加入如下代码就可以禁止别人访问你的.htaccess文件:

<Files .htaccess>
order allow,deny
deny from all
</Files>

这个网上的大部分版本都有错误,大部分版本丢掉了<Files .htaccess> ,结果导致所有文件都被禁止访问。如果用了错误的规则,所有内容都将无法访问。

同样道理,如果要禁止其他文件的访问,用其他文件名替换就可以了。

Apache Web 服务器可以通过 .htaccess 文件来操作各种信息,这是一个目录级配置文件的默认名称,允许去中央化的 Web 服务器配置管理。可用来重写服务器的全局配置。该文件的目的就是为了允许单独目录的访问控制配置,例如密码和内容访问。下面是 21 个非常有用的 .htaccess 配置的提示和技巧:

1. 定制目录的 Index 文件

1 DirectoryIndex index.html index.php index.htm

你可以使用上面的配置来更改目录的默认页面,例如你将这个脚本放在 foo 目录,则用户请求 /foo/ 时候就会访问 /foo/index.html

2. 自定义错误页

ErrorDocument 404 errors/404.html

当用户访问页面报错时,例如页面找不到你希望显示自定义的错误页面,你可以通过这种方法来实现。或者是动态的页面:

1 ErrorDocument 404 /psych/cgi-bin/error/error?404

3 控制访问文件和目录的级别

.htaccess 经常用来限制和拒绝访问某个文件和目录,例如我们有一个 includes 文件夹,这里存放一些脚本,我们不希望用户直接访问这个文件夹,那么通过下面的脚本可以实现:

# no one gets in here!    deny from all

上述脚本是拒绝所有的访问,你也可以根据IP段来拒绝:

青岛SEO详解.htaccess 和httpd.ini区别
# no nasty crackers in here!    order deny,allow    
deny from all    
allow from 192.168.0.0/24    
# this would do the same thing..    #allow from 192.168.0
青岛SEO详解.htaccess 和httpd.ini区别

一般这些方法是通过防火墙来处理,但在一个生产环境中的服务器来说,这样的调整非常方便。

  有时候你只是想禁止某个ip访问:

1 # someone else giving the ruskies a bad name..    2 order allow,deny    3 deny from 83.222.23.219    
4 allow from all

4. 修改环境变量

环境变量包含了服务器端 CGI 的一些扩展信息,可使用 SetEnv 和 UnSetEnv 进行设置以及取消设置.

SetEnv SITE_WEBMASTER "Jack Sprat"    SetEnv SITE_WEBMASTER_URI mailto:[email protected]    
            
UnSetEnv REMOTE_ADDR

5. 301 重定向

  如果你希望某个页面跳转到新的页面:

Redirect 301 /old/file.html http://yourdomain.com/new/file.html

下面可以实现对整个路径的重定向

RedirectMatch 301 /blog(.*) http://yourdomain.com/$1

6. 通过 .htaccess 实现缓存策略

通过设置在浏览器上缓存静态文件可以提升网站的性能:

青岛SEO详解.htaccess 和httpd.ini区别
# year    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf|mp3|mp4)$">    
Header set Cache-Control "public"    
Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"    
Header unset Last-Modified    </FilesMatch>    
#2 hours    <FilesMatch "\.(html|htm|xml|txt|xsl)$">    
Header set Cache-Control "max-age=7200, must-revalidate"    
</FilesMatch>    
<FilesMatch "\.(js|css)$">    SetOutputFilter DEFLATE    Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"    
</FilesMatch>
青岛SEO详解.htaccess 和httpd.ini区别

7. 使用 GZIP 对输出进行压缩

在 .htaccess 中添加下面的代码可以将所有的 css、js 和 html 使用 GZIP 算法压缩:

青岛SEO详解.htaccess 和httpd.ini区别
<IfModule mod_gzip.c>    
    mod_gzip_on       Yes    
    mod_gzip_dechunk  Yes    
    mod_gzip_item_include file      \.(html?|txt|css|js|php|pl)$    
    mod_gzip_item_include handler   ^cgi-script$    
    mod_gzip_item_include mime      ^text/.*    
    mod_gzip_item_include mime      ^application/x-javascript.*    
    mod_gzip_item_exclude mime      ^image/.*    
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*    
</IfModule>
青岛SEO详解.htaccess 和httpd.ini区别

使用上面代码的前提是启用 mod_gzip 模块,你可以使用下面脚本来判断 Web 服务器是否提供 mod_deflate 支持:

青岛SEO详解.htaccess 和httpd.ini区别
<Location>    
    SetOutputFilter DEFLATE    
      SetEnvIfNoCase Request_URI  \    
        \.(?:gif|jpe?g|png)$ no-gzip dont-vary    
    SetEnvIfNoCase Request_URI  \    
        \.(?:exe|t?gz|zip|gz2|sit|rar)$ no-gzip dont-vary    </Location>
青岛SEO详解.htaccess 和httpd.ini区别

如果 Web 服务器不支持 mod_deflate ,那么可使用下面方法:

<FilesMatch "\.(txt|html|htm|php)">    
    php_value output_handler ob_gzhandler    </FilesMatch>

8. 强制要求使用 HTTPS 访问

通过以下脚本可以强制整个网站必须使用 https 方式访问:

RewriteEngine On    
RewriteCond %{HTTPS} !on    
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

9. URL 重写

  例如要将 product.php?id=12 重写为 product-12.html

RewriteEngine on    
RewriteRule ^product-([0-9]+)\.html$ product.php?id=$1

将 product.php?id=12 重写为 product/ipod-nano/12.html

RewriteEngine on    
RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$2

重定向没有 www 到有 www 的 URL 地址:

RewriteEngine On    
RewriteCond %{HTTP_HOST} ^viralpatel\.net$    
RewriteRule (.*) http://www.viralpatel.net/$1 [R=301,L]

 

重写 yoursite.com/user.php?username=xyz 到 yoursite.com/xyz

RewriteEngine On    
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1    RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1

 

重定向某个域名到一个 public_html 里新的子文件夹

RewriteEngine On    
RewriteCond %{HTTP_HOST} ^test\.com$ [OR]    
RewriteCond %{HTTP_HOST} ^www\.test\.com$    
RewriteCond %{REQUEST_URI} !^/new/    RewriteRule (.*) /new/$1

 10. 阻止列出目录文件

使用下面代码可以防止列表目录里的所有文件:

Options -Indexes

或者

IndexIgnore *

11. 添加新的 MIME-Types

MIME-types 依赖于文件的扩展名,未能被识别的文件扩展名会当成文本数据传输

AddType application/x-endnote-connection enz    
AddType application/x-endnote-filter enf    
AddType application/x-spss-savefile sav

12. 防盗链

你不希望别人网站引用你站内的图片、css 等静态文件,也就是传说中的防盗链,可以使用如下脚本:

RewriteCond %{HTTP_REFERER} !^$    
RewriteCond %{REQUEST_URI} !^/(wp-login.php|wp-admin/|wp-content/plugins/|wp-includes/).* [NC]    
RewriteCond %{HTTP_REFERER} !^http://www.askapache.com.*$ [NC]    RewriteRule \.(ico|pdf|flv|jpg|jpeg|mp3|mpg|mp4|mov|wav|wmv|png|gif|swf|css|js)$ - [F,NS,L]

13. 指定上传文件的大小限制,适用于 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

上述脚本中,通过四个参数来设置上传文件的限制,第一个参数是文件的大小,第二个是 POST 数据的大小,第三个是传输的时间(单位秒),最后一个是解析上传数据最多花费的时间(单位秒)

14. 禁止脚本执行

Options -ExecCGI    
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi

15. 修改字符集和语言头

AddDefaultCharset UTF-8    DefaultLanguage en-US

16. 设置服务器时区(GMT)

SetEnv TZ America/Indianapolis

17. 强制 “File Save As” 提示

AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4

18. 保护单个文件

正常情况下 .htaccess 可用于限制整个目录的访问,但也可以只限制某个文件

青岛SEO详解.htaccess 和httpd.ini区别
 1 <Files quiz.html>    
 2 order deny,allow     3 deny from all     4 AuthType Basic     5 AuthName "Characterology Student Authcate"    
 6 AuthLDAP on     7 AuthLDAPServer ldap://directory.characterology.com/     8 AuthLDAPBase "ou=Student, o=Characterology University, c=au"    
 9 require valid-user    10 satisfy any    11 </Files>
青岛SEO详解.htaccess 和httpd.ini区别

19. 设置 Cookie

  通过环境变量来设置 Cookie

Header set Set-Cookie "language=%{lang}e; path=/;" env=lang

基于请求设置 Cookie,该代码发送 Set-Cookie 头用于设置 Cookie 值为第二个括号里的匹配项

RewriteEngine On    
RewriteBase /    RewriteRule ^(.*)(de|es|fr|it|ja|ru|en)/$ - [co=lang:$2:.yourserver.com:7200:/]

20. 设置自定义的响应 Headers

Header set P3P "policyref=\"http://www.askapache.com/w3c/p3p.xml\""    
Header set X-Pingback "http://www.askapache.com/xmlrpc.php"    
Header set Content-Language "en-US"    
Header set Vary "Accept-Encoding"

21. 根据 User-Agent 来阻止请求

SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT    
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT    
Deny from env=HTTP_SAFE_BADBOT


本文主题:青岛SEO详解.htaccess 和httpd.ini区别
本文地址:http://www.52qingdao.com/seo_youhua/337.html
雪无痕seo团队:山东seo/山东网站优化/山东百度优化/青岛seo/青岛网站优化/青岛百度优化/山东青岛google优化排名公司
服务项目:解决各种seo网站优化排名推广、网站建设疑难问题,提供【网站优化】【seo优化】【seo工具】【seo技术】【seo排名】【seo教程】【关键词优化】【整站优化】【百度优化】【网络营销】【seo服务】【seo培训】【seo外包】【seo顾问】等【网站seo优化】及【seo查询】咨询QQ号:9710917

温馨提示:本站部分文字及图片均来自于网络,部分内容及图片不代表本站观点如侵犯到您的权益,请及时通知我们!文章来自网络整理,提倡seo技术共享!欢迎转载!转载请保留出处和链接!

上一篇
下一篇
  • seo城市分站: