手机h5免费模板网站模板下载,wordpress sticky_posts,最新手游2022首发排行,自己不会代码让别人做网站怎么管理好记性不如烂笔头#xff0c;这个东西来回记了两次#xff0c;完了用的时候还是问百度#xff0c;今天决定记载下来。虽然文章类型是转载#xff0c;可是这都是我自己敲的#xff0c;我自己总结的当然了#xff0c;我只是借鉴了别人的知识成果。
.htaccess文件是apache的…好记性不如烂笔头这个东西来回记了两次完了用的时候还是问百度今天决定记载下来。虽然文章类型是转载可是这都是我自己敲的我自己总结的当然了我只是借鉴了别人的知识成果。
.htaccess文件是apache的分布式配置文件。他负责相关目录下的网页配置通过.htaccess可以帮我们实现。必须以ASCII模式上传并且给其可读性。
.htaccess可以帮我们实现网页301重定向自定义404错误页面改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、封禁特定IP地址的用户只允许特定IP地址的用户以及使用其他文件作为index文件配置默认文档等功能。
.htaccess文件一般情况下不应该使用.htaccess文件除非对主配置文件没有访问权限。用户认证不但能使用.htaccess文件实现把用户认证写在主配置文件中是完全可行的而且是一种很好的方法。
任何希望放在.htaccess 文件中的配置都可以在主配置文件的Directory段中而且更高效。
避免使用.htaccess文件有两个主要原因
①性能。如果AllowOverride启用了.htaccess文件则Apache需要在每个目录查找.htaccess文件无论是否找到启用都会导致性能下降。另外对每一个请求都需要读取一次.htaccess文件还有Apache必须在所有上级的目录中查找.htaccess文件以使所有有效的指令都起作用例如
如果请求/www/htdocs/example中的页面Apache必须查找以下文件 /.htaccess /www/.htaccess /www/htdocs/.htaccess /www/htdocs/example/.htaccess
②安全。这样会允许用户自己修改服务器的配置这会导致某些意想不到的修改。
注意在/www/htdocs/example目录下的.htaccess文件中的放置指令与在主配置文件中Directory /www/htdocs/example段中放置相同的指令是完全等效的。 下面写一些.htaccess 文件中常用的一些内容然后在逐一解释。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$
RewriteCOnd %{REQUEST_URI} !^/blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /blog/$1 注意解释
①RewriteEngine On:表示重写引擎开关闭off,作用就是方便的开启或关闭以下的语句这样就不需要一条一条的注释语句了。
②RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$ 这是重写条件前面%{HTTP_HOST}表示当前访问的网址格式是www.xx.com不包括“http://”和“/”^表示字符串开始$表示字符串结尾\.表示转义的.如果不转义也行推荐转义防止有些服务器不支持表示前面括号www\.出现0次或1次这句规则的意思就是如果访问的网址是xxx.com或者www.xxx.com就执行以下的语句不符合就跳过。
③RewriteCond %{REQUEST_URI} !^/blog/也是重写条件%{REQUEST_URI}表示访问的相对地址就是相对根目录的地址就是域名/后面的成分格式上包括最前面的“/”表示非这句话表示访问的地址不以/blog/开头只是开头没有结尾$。
④
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 这两家话的意思是请求的文件或路径是不存在的如果文件或路径存在将返回已经存在的文件或路径。
⑤RewriteRule ^(.*)$ /blog/$1重写规则最重要的部分意思是当上面的rewriteCond条件都满足的时候将会执行此重写规则^(.*)$是一个正则表达的匹配匹配的是当前请求的URL^(.*)$意思是匹配当前URL任意字符表示任意单个字符.表示任意单个字符*表示匹配0次或者N次后面/blog/$1是重写成分意思是将前面匹配的字符重写成/blog/$1这个$1表示反向匹配引用的是前面 的第一个圆括号的成分即^(.*)$中的.*将会匹配当前的请求url。
⑥Linux系统是区分大小写的所以RewriteCond后添加【NC】忽略大小写。
即 RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$ [NC]