让我们从一个遥远的地方开始,目标是使新手可以看到本文中描述的文件的工作方式。 要在Internet上运行网站,您不仅需要一台PC并可以访问网络,而且还需要在其上引入非凡的程序,该程序可以使用HTTP和HTTPS约定访问信息。 该产品是Web服务器。 有多种Web服务器,但是,最广泛使用的是Apache。 它基于免费的开源代码,并且不断得到改进和增强,与许多脚本兼容,并且可以在几乎所有平台上运行,包括Windows,Linux,Netware5.x。
Apache通过存放在内容组织中的设计文档来安排。 在他们的帮助下,您可以设置Web服务器的明确活动标准。 原则设计记录称为httpd.conf或apache.conf(视操作系统的传输情况而定)。 在大多数情况下,可以在此处确定所有服务器设置,并且鉴于以下事实,从本质上讲,此技术是最佳的:
减少提及时Web服务器的响应时间(因此,每次访问Web服务器时,Apache都不会细读.htaccess的所有目录); 从原理设计记录来看,从许多方面来看,有几个命令(例如mod_rewrite模块命令)可以更好地工作。
尽管如此,并非服务器的所有客户端都可以访问此文档(例如,出于共享便利的考虑),因此为其余的服务器提供了额外的Web服务器布置记录-.htaccess(以逗号开头。名称)。
目录
- .htaccess代表什么
- 如何创建一个.htaccess文件
- .htaccess语法
- .htaccess机会
- 门禁控制
- 处理网络服务器错误
- 调整htaccess中的重定向301
- mod重写重定向模块
- 定义编码
- 其他机会
- 如果.htaccess不起作用
- 有关使用.htaccess的更多提示
- 有用的链接
什么是.htaccess?它的作用是什么?
.htaccess文件(或多个文件)将仅在Web服务器所在的目录及其子目录中设置该Web服务器的规则,而不会对整个服务器的操作进行全局更改。 .htaccess的使用由主配置文件httpd.conf中的指令(即命令)AllowOverride规定,该名称直接表明.htaccess中的设置优先于httpd.conf中的设置。 (除非受所有相同的指令AllowOverride限制)。 使用此指令,您可以允许所有操作,并且您可以-只需执行某些操作即可。 可在Apache网站上找到有关其使用的详细说明。
有了它,每次访问Web服务器时,Apache都会扫描所有目录以查找.htaccess。 保存后,文件中的更改立即生效-无需重新启动整个Web服务器(与httpd.conf中的更改不同)。
.htaccess文件的名称是通用的,但不是必须的。 您可以使用AccessFileName伪指令在httpd.conf中设置其他名称,例如:
AccessFileName .config
如何创建一个.htaccess文件
如前所述,配置文件具有文本格式,您还可以使用文本编辑器(例如Windows中的Notepad或NotePad ++)创建.htaccess。
文件名是.htaccess(以点开头);
类型-“所有文件”;
自动换行
ASCII模式(使用FTP协议将.htaccess上传到主机时)。
Apache是区分大小写的Web服务器,因此用小写字母写名称很重要:.HTaccess和.htaccess是不同的文件。
以点开头的Mac OS文件不可见。 因此,您可以以不同的方式调用它,然后,通过FTP传输到主机,然后重命名它。 通常,他们将文件放置在Web服务器的根目录(/ public_html)或站点的根目录(/public_html/site.com/)中。
.htaccess语法
.htaccess语法类似于httpd语法。 对于每个指令,假定使用单独的一行。 为了方便起见,您可以使用#号将注释添加到文件中,并且#号后面的值将被Web服务器忽略。 此技巧可用于禁用任何指令。 不需要将其从文件中完全删除-只需将其注释掉即可。
配置文件的可能性是巨大的。 以下是.htaccess中的基本设置。
.htaccess机会
门禁控制
网络访问禁令:
拒绝订单,允许
全部拒绝
Web访问禁令,IP除外:
order deny, allow deny from all allow from xxx.xxx.xxx.xxx
IP的网络访问禁令:
Order allow, deny Allow from all Deny from xxx.xxx.xxx.xxx
禁止文件访问:
<Files private.html > Order allow, deny Deny from all
使用密码的目录安全性:
AuthType Basic AuthName "Directory Name" AuthUserFile /home/cpanel_user/.htpasswds/public_html/smth/passwd require valid-user # where AuthName "Directory Name is the secured directory name, nd # /home/cpanel_user/.htpasswds/public_html/smth/passwd is the file location with the password.
处理网络服务器错误
有时,访问者可能会以错误的形式(而不是简单的页面)来获得预期的页面,但是简洁明了,但对于简单的用户而言却并非总是那么清楚,以解释原因。 状态码的完整列表可以在Wikipedia上找到。 对于最常见的错误(例如404或500错误),最好创建自己的页面,使页面看起来更好,并向访客显示退出路线。 设置如下:
错误文档404 yourdomain.com/error/404.html
#其中
yourdomain.com/error/404.html是创建页面的路径。
调整htaccess中的重定向301
为了创建永久重定向,使用指令301重定向,它将页面的整个权重转移到新的url(因此,出于SEO目的,最好使用302重定向)。
将整个站点重定向到新域:
Redirect 301 / http://www.newdomain.com/
将页面重定向到新页面:
Redirect 301 /page1.html http://mydomain.com/page2.html
Mod重写重定向模块
mod_rewrite模块是“动态”更改URL的必不可少的机制。 它的实用性以及同时的困难在于,您可以使用包含甚至更多变量的无数规则。
为了使模块正常工作,首先我们需要指令
RewriteEngine On(包括转换引擎)
选项FollowSymLinks(mod_rewrite操作条件)。
如果服务器管理员已为用户目录禁用此选项,则无法使用转换机制。 为了安全起见,对虚拟主机服务器施加了此限制。
要进一步了解该模块,我们建议参考源代码。
重写规则
RewriteRule是mod_rewrite模块最实用的指令之一。 要指定规则将在何种条件下工作,将使用RewriteCond指令。 必须在RewriteRule之前指定它(一个或多个)。
将页面重定向到新域:
RewriteRule ^ page1 \ .html $ http://newdomain.com/ [R = 301]
将站点从没有www的域重定向到从www的域:
RewriteEngine On RewriteCond% {HTTP_HOST}! ^ Www \ .. * [NC] RewriteRule ^ (. *) Http: //www.% {HTTP_HOST} / $ 1 [R = 301]
反之亦然:
RewriteCond% {HTTP_HOST} ^ www \. (. *) $ [NC] RewriteRule ^ (. *) $ Http: //% 1 / $ 1 [R = 301, L]
HTTPS重定向(您必须首先安装HTTPS证书):
RewriteEngine On RewriteCond% {https}! On RewriteRule (. *) Https: //% {HTTP_HOST}% {REQUEST_URI} [R = 301, L]
这些行必须放在.htaccess的最顶部。
定义编码
浏览器确定打开站点的符号表。 但是,您可以设置默认编码:
AddDefaultCharset UTF-8
此类更改适用于.htaccess以及网站的所有页面。 您可以为特定类型的文件设置编码,例如Windows-1251(用于html):
AddType "application / x-httpd-php3; charset = windows-1251" .html
通常,页面本身会本身(即在标题中)包含有关所使用的编码的信息。 有必要检查文档和配置文件中指定的编码是否匹配。 与流行的cms一起使用时,几乎总是需要此处给出的utf-8,因为它们是为世界各地的广泛用户设计的。 顺便说一下,默认情况下,在我们的共享托管服务器上配置了相同的编码。
其他机会
-确定站点索引文件:
默认情况下,索引页面被视为index.html。 借助以下指令,您可以指定另一个在访问目录时首先出现的文件名:
DirectoryIndex index.php
-一个有用的指令是FilesMatch,它使用正则表达式按文件名指定规则的限制。 例如,借助其帮助,您可以拒绝访问某些文件:
<FilesMatch "\. (htaccess | htpasswd | ini | phps | fla | psd | log | sh) $"> Order Allow, Deny Deny from all </ FilesMatch>
我们的共享主机服务器上不支持某些指令,但是您可以在VPS上允许它们。
原因是作为suPHP运行的Web服务器不支持php_flag和php_value。 因此,我们建议使用cPanel(“选择PHP版本”小节非常有用,可用于error_log-“错误日志”)或为此目的创建本地php.ini文件。 我们确实在下面带来了一些指令:
-为了避免处理错误编写的脚本时Web服务器冻结,请使用max_execution_time。 在它的帮助下,以秒为单位的时间将指示用于处理PHP脚本。 您可以在执行脚本时增加Web服务器的超时:
php_value max_execution_time 60
-确定最大上传文件大小:
php_value upload_max_filesize 128M (here, instead of 128, put the desired value)
-将PHP错误打印到单独的文件中:
php_flag log_errors on php_value error_log /home/path/to/public_html/domain/PHP_errors.log # PHP_errors.log is the name of the file, and # / home / path / to / public_html / domain - the path to it).
PS在共享主机上,很难准确确定哪些指令可在.htaccess中使用,因为出于明显的原因,许多导致Web服务器配置更改的指令被禁止-这些更改将影响介质上的所有用户。
如果.htaccess不起作用
您可以通过编写简单的指令来检查文件操作,这些指令应具有正确的语法和正确的httpd设置(如本文开头所述):
-例如,通过使用指令拒绝从外部访问该网站
Order deny, allow Deny from all
-或将非指令的无意义字符集写入文件。 如果Web服务器与htaccess进行交互,则当然将无法读取它们并给出500错误。
如果问题确实存在,则必须首先在主配置文件中查找原因:
-确保服务器允许使用.htaccess文件:有一个AllowOverride All条目(并且没有使用#注释掉);
-验证是否已为域创建VirtualHost条目。 例如:
<VirtualHost *: 80> DocumentRoot / www / example1 ServerName www.example.com # Other directives </ Virtualhost>
-根据需要指示其他配置文件的名称。 如果是.htaccess,则:
AccessFileName .htaccess
-服务器的主机名(在创建URL重定向时指定)作为服务器或域的IP地址存在:
ServerName www.example.com
如果原因不在httpd中,则需要检查.htaccess本身是否存在语法错误。 您可以使用在线服务(例如
www.htaccesscheck.com ,
htaccess.madewithlove.be ),也可以使用-原始资源,其中包含指令的完整列表以及语法。
有关使用.htaccess的更多提示
在进行任何编辑之前,最好先备份文件的副本,以便以最差的结果“回滚”所做的更改。
我们建议使用最少的指令逐步进行更改-如果发生故障,将更容易计算出哪个规则导致了错误。
尽管更改会立即生效,但浏览器的缓存尚未取消-在编辑.htaccess后检查网站的工作,定期清理它或加载页面以绕过缓存-通过组合键Ctrl + F5 (在Safari中:Ctrl + R,在Mac OS中:Cmd + R)。
使用.htaccess时,最常见的Web服务器错误是500,它表明语法有问题(例如,指令中的键入错误),或者在主配置文件中不允许这种类型的指令。
有用的链接
使用.htaccess的启示 :
httpd.apache.org/docs/2.2/howto/htaccess.html有关使用.htacess的许多说明 :
htaccess.net.ru程序员博客平台 :
writeabout.tech.htaccess的简单指令生成器 :
htaccess.ru/generator如果.htaccess文件不足以更改Web服务器配置文件,则可以在欧洲或美国租用已分配的服务器。 这些服务器可以为您提供更改Apache设置的机会。
购买reddit upvotes
reddit购买支持
reddit投票
reddit流量
reddit流量
reddit流量机器人
reddit流量来源
reddit交通软件
支持reddit
赞成reddit是什么
升级reddit机器人
更新reddit帖子
赞成reddit购买
uprede redditlàgì
升级reddit应用
升级reddit手机
Reddit支持投票交换
reddit赞成反对
reddit upvote bot免费
Reddit支持服务
reddit upvote算法
Reddit支持系统
Reddit支持小组
reddit upvote bot在线
支持reddit
推荐的reddit评论
推荐的reddit手机
推荐的reddit
推荐的reddit帖子
投票reddit
推荐的reddit应用
reddit投票机器人
Reddit支持服务
使用多个帐户进行reddit投票
修改自己的帖子
从相同的ip进行reddit投票
reddit投票与否决
reddit喜欢
reddit喜欢购买
reddit的好恶
reddit机器人
Reddit Bot API
reddit bot源代码
reddit bot用户代理
reddit bot不和谐
reddit机器人评分
reddit bot开发
reddit bot C#
reddit机器人自动化
reddit机器人python
reddit机器人测试
reddit bot自动发布
reddit bot创意
reddit bot subreddit
reddit机器人github
Reddit Bot Upvote
reddit机器人账户
reddit bot ti
reddit upvote bot 2019
reddit upvote bot 2018
reddit投票机器人
reddit upvote机器人github
reddit upvote bot 2017
reddit upvote机器人python
reddit支持您自己的帖子
reddit post upvote机器人
赞我的reddit帖子
reddit支持自己的帖子
reddit赞赞帖子
reddit投票购买
reddit upvote downvote系统
reddit upvote downvote算法
reddit定制投票/降票
reddit upvote系统如何工作
reddit upvote系统如何工作
reddit新的upvote系统
reddit支持评论
reddit upvote机器人
reddit支持多个账户
reddit赞成和反对
reddit自动化机器人
reddit bot python虾
python reddit机器人github
reddit机器人测试subreddit
reddit业力机器人github
reddit downvote机器人github
tldr bot reddit github
reddit bot投票
购买reddit业力
如何在reddit上获得投票
如何购买reddit upvotes
购买一个reddit账户
购买旧的reddit帐户
购买reddit账户
在reddit上购买upvotes
reddit流量
reddit营销
获得reddit投票
支持俱乐部
购买reddit账户
投票。 俱乐部
Reddit广告
reddit upvote机器人
购买reddit业力
reddit广告
reddit机器人
reddit营销
reddit卖东西
reddit支持
reddit新投票系统
支付reddit投票
reddit喜欢
reddit宣传youtube
reddit投票
支持reddit
boostupvotes.com
购买reddit下载
购买reddit票
购买reddit upvotes
reddit帐户出售
reddit投票系统
reddit帐户购买
购买reddit upvote
购买高业力的Reddit帐户
购买reddit的投票
购买新的reddit帐户
购买reddit投票
购买reddit upvoites
购买redit投票
即时reddit upvote机器人在线
付费reddit支持
私人代理进行Reddit投票
reddit upvote bot在线
购买高业力Reddit帐户
购买旧的reddit帐户
用业力购买reddit帐户
廉价的reddit账户
免费的因果报应
免费的Reddit账户与业力
免费reddit金
获得免费的reddit投票
得到因果报应
得到reddit业力
高业力reddit帐户出售
我如何在Reddit上获得业力
reddit业力如何运作
我的reddit帐户值多少钱
如何在Reddit上获得更多支持
如何获得reddit业力
如何做一个subreddit
如何在reddit上出售
如何使用reddit进行业务
reddit帐户购买
reddit帐户销售
reddit帐户出售
reddit自动更新
reddit购买账户
reddit upvote机器人
Reddit支持小组
Reddit支持服务
在reddit上出售
支持系统
购买reddit帖子
购买reddit订户
购买升级
廉价的reddit支持
免费reddit投票
在reddit上推广
reddit做广告
reddit推广服务
买卖reddit账户
卖掉reddit账户以赚钱
高业力兑换帐户
购买reddit机器人
购买reddit upvote机器人
在线reddit机器人
在线reddit upvotes bot
用业力购买帐户
投票
投票。 io
boostupvotes com
boostupvotes com
购买reddit投票
www.soar sh
sh
www.passthevote com
passthevote com
www.appsally com
appsally com
boostupvotes.com
加强投票
应用地
支持俱乐部
redditonfire。 com
烈火
upvotes.space
呜呼。 com