超好用,.htaccess用法大全,wordpress也适用

这些.htaccess代码,非常的好,想得到的功能,大部分都有。
再次申明一下,这些代码是可以直接复制到.htaccess里面产生效果,绝大部分都是可以用,而有些是需要稍作修改。
因此你要修改.htaccess的时候,请先备份
 
重新和重定向
注:你伺服器需要安装及启用mod_rewrite。

强制 www

 
  1. RewriteEngine on
  2. RewriteCond %{HTTP_HOST} ^example.com [NC]
  3. RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]

强制www通用方法

 
  1. RewriteCond %{HTTP_HOST} !^$
  2. RewriteCond %{HTTP_HOST} !^www. [NC]
  3. RewriteCond %{HTTPS}s ^on(s)|
  4. RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
可用于多数的网站

强制 non-www

让网址不带www的方法
 
  1. RewriteEngine on
  2. RewriteCond %{HTTP_HOST} ^www.example.com [NC]
  3. RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

强制non-www通用方法

 
  1. RewriteEngine on
  2. RewriteCond %{HTTP_HOST} ^www.
  3. RewriteCond %{HTTPS}s ^on(s)|off
  4. RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www.)?(.+)$
  5. RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]

强制 HTTPS

 
  1. RewriteEngine on
  2. RewriteCond %{HTTPS} !on
  3. RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
  4. # Note: It's also recommended to enable HTTP Strict Transport Security (HSTS)
  5. # on your HTTPS website to help prevent man-in-the-middle attacks.
  6. # See https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security
  7. Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

强制HTTPS 通过代理

 
  1. RewriteCond %{HTTP:X-Forwarded-Proto} !https
  2. RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

重新指向到一个页面

 
  1. Redirect 301 /oldpage.html http://dhamma.com.tw/newpage.html
  2. Redirect 301 /oldpage2.html http://dhamma.com.tw/folder/

目录别名

 
  1. RewriteEngine On
  2. RewriteRule ^source-directory/(.*) target-directory/$1

重新指向整个网站

 
  1. Redirect 301 / http://newsite.com/
这样做它的连结完好。假设一个www.oldsite.com/some/crazy/link.html将成为www.newsite.com/some/crazy/link.html。这是非常有用的,我们可以「移动」网站,到达一个新的网站。

干净的URL

 
  1. RewriteEngine On
  2. RewriteCond %{SCRIPT_FILENAME} !-d
  3. RewriteRule ^([^.]+)$ $1.php [NC,L]

拒绝所有访问

[cc lang="php"] ## Apache 2.2 Deny from all ## Apache 2.4 # Require all denied [/cc]

拒绝所有访问-排除部分

[cc lang="php"] ## Apache 2.2 Order deny,allow Deny from all Allow from xxx.xxx.xxx.xxx ## Apache 2.4 # Require all denied # Require ip xxx.xxx.xxx.xxx [/cc]注:单独列出所有允许的IP地址

遮罩爬虫/恶意访问

[cc lang="php"] ## Apache 2.2 Order deny,allow Allow from all Deny from xxx.xxx.xxx.xxx Deny from xxx.xxx.xxx.xxy ## Apache 2.4 # Require all granted # Require not ip xxx .xxx.xxx.xxx # Require not ip xxx.xxx.xxx.xxy [/cc]

保护隐藏档和目录

隐藏文件和目录(那些名称以一个点。),如果不是全部的时间固定。 example: .htaccess, .htpasswd, .git, .hg…
 
  1. RewriteCond %{SCRIPT_FILENAME} -d [OR]
  2. RewriteCond %{SCRIPT_FILENAME} -f
  3. RewriteRule "(^|/)." - [F]
或者,你可以提出一个404的错误页面,
  1. RedirectMatch 404 /\..*$

保护备份档案和原始程式码档

如果你可以通过一些文本/ HTML编辑器留,公开这些文件,会造成极大的安全威胁,那你需要这段代码保护。
 
  1. "(\.(bak|config|dist|fla|inc|ini|log|psd|sh|sql|swp)|~)$">
  2.     ## Apache 2.2
  3.     Order allow,deny
  4.     Deny from all
  5.     Satisfy All
  6.     ## Apache 2.4
  7.     # Require all denied

禁止目录被流览

  1. Options All -Indexes

禁止图片连结被盗连

 
  1. [cc lang="php"]
  2. RewriteEngine on
  3. # Remove the following line if you want to block blank referrer too
  4. RewriteCond %{HTTP_REFERER} !^$
  5. RewriteCond %{HTTP_REFERER} !^http(s)?://(.+.)?example.com [NC]
  6. RewriteRule .(jpg|jpeg|png|gif|bmp)$ - [NC,F,L]
  7. # If you want to display a "blocked" banner in place of the hotlinked image,
  8. # replace the above rule with:
  9. # RewriteRule .(jpg|jpeg|png|gif|bmp) http://example.com/blocked.png [R,L]
  10. [/cc]

禁止图片连结被盗连(针对特店网址)

有时候,我们只想让某部分人禁止图片盗连。
 
  1. class=dp-highlighter>
    class=bar>
    1. class=dp-c>
  2. class=alt>[cc lang=class=string>"php"]   
  3. RewriteEngine on   
  4. class=alt># Remove the following line class=keyword>if you want to block blank referrer too   
  5. RewriteCond %{HTTP_REFERER} !^$   
  6. class=alt>  
  7. RewriteCond %{HTTP_REFERER} !^http(s)?:class=comment>//(.+.)?example.com [NC]   
  8. class=alt>RewriteRule .(jpg|jpeg|png|gif|bmp)$ - [NC,F,L]   
  9.   
  10. class=alt># If you want to display a class=string>"blocked" banner in place of the hotlinked image,   
  11. # replace the above rule with:   
  12. class=alt># RewriteRule .(jpg|jpeg|png|gif|bmp) http:class=comment>//example.com/blocked.png [R,L]   
  13. [/cc]  

用密码保护目录

首先,你需要在系统中的某个地方创建一个.htpasswd的文件:
  1. htpasswd -c /home/fellowship/.htpasswd boromir
然后,你可以用它来验证:
 
  1. AuthType Basic
  2. AuthName "One does not simply"
  3. AuthUserFile /home/fellowship/.htpasswd
  4. Require valid-user

用密码保护档案

 
  1. AuthName "One still does not simply"
  2. AuthType Basic
  3. AuthUserFile /home/fellowship/.htpasswd
  4. "one-ring.o">
  5. Require valid-user
  6. Require valid-user

使用Referrer过滤浏览者

  1. RewriteEngine on
  2. # Options +FollowSymlinks
  3. RewriteCond %{HTTP_REFERER} somedomain.com [NC,OR]
  4. RewriteCond %{HTTP_REFERER} anotherdomain.com
  5. RewriteRule .* - [F]

防止被别的网站嵌入

这可以防止网站被嵌入(别人使用iframe语法),当然可以允许制定特定URI。
 
  1. SetEnvIf Request_URI "/starry-night" allow_framing=true
  2. Header set X-Frame-Options SAMEORIGIN env=!allow_framing

启用网站压缩功能

这可以让网站加速,最为标准的语法,我就是用这个语法的。
 
  1. # compression for mangled headers.
  2. # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping
  3. SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)s*,?s*)+|[X~-] {4,13}$ HAVE_Accept-Encoding
  4. RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
  5. # Compress all output labeled with one of the following MIME-types
  6. # (for Apache versions below 2.3.7, you don't need to enable `mod_filter`
  7. and can remove the `` and `` lines
  8. as `AddOutputFilterByType` is still in the core directives).
  9. AddOutputFilterByType DEFLATE application/atom+xml
  10. application/javascript
  11. application/json
  12. application/rss+xml
  13. application/vnd.ms-fontobject
  14. application/x-font-ttf
  15. application/x-web-app-manifest+json
  16. application/xhtml+xml
  17. application/xml
  18. font/opentype
  19. image/svg+xml
  20. image/x-icon
  21. text/css
  22. text/html
  23. text/plain
  24. text/x-component
  25. text/xml

设定浏览器快取功能

也称设置过期头资讯,详细的内容我有这篇介绍设定浏览器快取功能
 
  1. ExpiresActive on
  2. ExpiresDefault "access plus 1 month"
  3. # CSS
  4. ExpiresByType text/css "access plus 1 year"
  5. # Data interchange
  6. ExpiresByType application/json "access plus 0 seconds"
  7. ExpiresByType application/xml "access plus 0 seconds"
  8. ExpiresByType text/xml "access plus 0 seconds"
  9. # Favicon (cannot be renamed!)
  10. ExpiresByType image/x-icon "access plus 1 week"
  11. # HTML components (HTCs)
  12. ExpiresByType text/x-component "access plus 1 month"
  13. # HTML
  14. ExpiresByType text/html "access plus 0 seconds"
  15. # JavaScript
  16. ExpiresByType application/javascript "access plus 1 year"
  17. # Manifest files
  18. ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
  19. ExpiresByType text/cache-manifest "access plus 0 seconds"
  20. # Media
  21. ExpiresByType audio/ogg "access plus 1 month"
  22. ExpiresByType image/gif "access plus 1 month"
  23. ExpiresByType image/jpeg "access plus 1 month"
  24. ExpiresByType image/png "access plus 1 month"
  25. ExpiresByType video/mp4 "access plus 1 month"
  26. ExpiresByType video/ogg "access plus 1 month"
  27. ExpiresByType video/webm "access plus 1 month"
  28. # Web feeds
  29. ExpiresByType application/atom+xml "access plus 1 hour"
  30. ExpiresByType application/rss+xml "access plus 1 hour"
  31. # Web fonts
  32. ExpiresByType application/font-woff2 "access plus 1 month"
  33. ExpiresByType application/font-woff "access plus 1 month"
  34. ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
  35. ExpiresByType application/x-font-ttf "access plus 1 month"
  36. ExpiresByType font/opentype "access plus 1 month"
  37. ExpiresByType image/svg+xml "access plus 1 month"

设定PHP变数

  1. php_value
  2. # For example:
  3. php_value upload_max_filesize 60M
  4. php_value max_execution_time 200

自定义错误页面

 
  1. ErrorDocument 500 "Houston, we have a problem."
  2. ErrorDocument 401 http://error.example.com/mordor.html
  3. ErrorDocument 404 /errors/halflife3.html

自动UTF-8 Encode

让您的文字内容应始终是UTF-8编码
 
  1. # Use UTF-8 encoding for anything served text/plain or text/html
  2. AddDefaultCharset utf-8
  3. # 强制 UTF-8 for a number of file formats
  4. AddCharset utf-8 .atom .css .js .json .rss .vtt .xml

切换PHP版本

如果你是租用虚拟主机,虚拟主机或许安装许多版本的php,而你可以透过此方法来更改php版本。
 
  1. AddHandler application/x-httpd-php55 .php
  2. # Alternatively, you can use AddType
  3. AddType application/x-httpd-php55 .php
若无法更换,则可以联络虚拟主机的公司。

禁止IE相容性

  1. BrowserMatch MSIE is-msie
  2. Header set X-UA-Compatible IE=edge env=is-msie

支持WebP图片格式

 
  1. RewriteEngine On
  2. RewriteCond %{HTTP_ACCEPT} image/webp
  3. RewriteCond %{DOCUMENT_ROOT}/$1.webp -f
  4. RewriteRule (.+).(jpe?g|png)$ $1.webp [T=image/webp,E=accept:1]

评论 (0)

此处尚未发表评论

留言

  1. 以游客身份发表评论。注册登入到您的帐户。
附件 (0/ 3)
分享您的位置