心如止水

心是静的,情是淡的,才能正确的品味人生……

您现在的位置是:主页 > 精品分享 > 技术分享 >

htaccess文件常用命令

发布时间:2019-09-29 13:42编辑:风杀浏览(

首先开启支持.htaccess文件需要:
       在php.ini中开启下面模块
       LoadModule rewrite_module modules/mod_rewrite.so
在httpd-vhosts.conf对应的虚拟主机配置中设
       AllowOverride All
以下是.htaccess文件的示例:

#重写引擎开,关闭off
RewriteEngine On

#将不带WWW的域名转向到带WWW的域名下:
RewriteCond %{HTTP_HOST} ^fengsha.space [NC]
RewriteRule ^(.*)$ http://www.fengsha.space/$1 [R=301]

#22.html跳转到33.html,页面跳转
RewriteCond %{HTTP_HOST} ^www.teamrapidtooling.com$
RewriteRule ^22.html$ http://www.teamrapidtooling.com/33.html [R=301]

#伪静态
RewriteRule ^products.html$ products.php?%{QUERY_STRING}

#$2匹配第二个正则表达式
RewriteRule ^(.*)-c-(.*).html$ categories.php?cPath=$2&%{QUERY_STRING}

#404页面
ErrorDocument 404 /404.php

#开启图片防盗链
RewriteCond %{REQUEST_FILENAME} .*\.(jpg|png|jpeg|gif) [NC]
RewriteCond %{REQUEST_REFERER} !^http://www.fengsha.space/.*$ [NC]
RewriteRule .* show.jpg

#启用https:(最好放到所有的rewritecond后面)
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.* https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

#开启压缩
<ifmodule mod_deflate.c>
#开启过滤器
SetOutputFilter DEFLATE
#设置不压缩的文件
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|exe|t?gz|zip|bz2|sit|rar|pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
#设置压缩的文件
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
</ifmodule>

#启用浏览器缓存
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000
ExpiresByType application/x-shockwave-flash A2592000
ExpiresByType text/css A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType application/javascript A2592000  
ExpiresByType text/javascript A2592000
ExpiresByType text/html A900
</IfModule>

#拒绝210.10.56.32此ip访问
deny from 210.10.56.32
#拒绝219.5.45.0~219.5.45.255此IP段访问
deny from 219.5.45.

###################################################################
常用参数
RewriteCond:
       [NC] 不分字母大小写
       [OR] 用于连接下一条规则
RewriteRule:
       [R] 强制重定向,[R=code] code默认为302
       [F] 禁用URL,返回HTTP 403 错误
       [L] 这是最后一条规则,之后内容无用
如果AllowOverride启用了.htaccess文件,则Apache需要在每个目录中查找.htaccess文件,
因此,无论是否真正用到,启用.htaccess都会导致性能的下降。
另外,对每一个请求,都需要读取一次.htaccess文件。
提示:所以最好是把整个.htaccess文件替换httpd-vhosts.conf文件对应虚拟主机<Directory />标签里面内容