大港设计网站:10个有用的htaccess代码段&hack

2019.06.17 大港设计网站

53

.htaccess是每个网络管理员都应该知道和理解的一个文件。在其基本级别上,它控制对站点目录的访问。但是你所能做的还不多,这篇文章中的片段将向你展示。

如果您想学习.htaccess,你应该检查一下.htaccess简介这篇文章很好地解释了你需要做的每一件事。

你可能也喜欢这些有用的WordPress SQL查询片段或者这些片段让WordPress对客户友好.

1.控制对文件和目录的访问

密码保护是一回事,大港设计网站但有时您可能需要完全阻止用户选择访问特定的文件或目录。这通常发生在系统文件夹中,例如includes文件夹,其中应用程序将需要访问,但没有用户将永远不需要特权。

为此,请将此代码粘贴到.htaccess文件并将其放到目录中:

deny from all

然而,这将阻止访问每个人,包括您。要授予自己访问权限,需要指定IP地址。以下是代码:

order deny,allow

deny from all

allow from xxx.xxx.xxx.xxx

xxx.xxx.xxx.xxx是你的IP。如果将最后三个数字替换为0/12例如,这将在同一网络中指定一系列IP,从而避免了单独列出所有允许的IP的麻烦。

如果您想阻止对特定文件的访问,包括.htaccess本身,请使用以下代码段:

<Files .htaccess>order allow,deny

deny from all</Files>

类似地,如果要允许给定的IP,请用allow from.

如果要阻止对特定文件类型的访问,请使用以下方法:

<FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">Order Allow,Deny

Deny from all</FilesMatch>

2.禁用目录浏览

若要阻止目录浏览,请添加以下内容:

Options All -Indexes

但是,如果出于某种原因要启用目录浏览,请将其更改为:

Options All +Indexes

3.通过压缩文件来加快加载时间。

您可以压缩任何类型的文件,而不仅仅是图像。例如,压缩HTML文件,使用这个:

AddOutputFilterByType DEFLATE text/html

压缩文本文件,使用这个:

AddOutputFilterByType DEFLATE text/plain

你也可以压缩JavaScript,或使用一个命令将压缩添加到多个文件类型:

AddOutputFilterByType DEFLATE application/javascriptAddOutputFilterByType DEFLATE application/rss+xml

或者,大港设计网站如果希望用GZIP压缩所有JavaScript、HTML和CSS文件,可以使用以下方法:

<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>

4.保护您的网站不受热链接的影响。

如果您不希望您的图像热链接,请将此添加到您的.htaccess档案:

RewriteEngine onRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

只要用你自己的网站代替你的域名,你就可以走了。

5.阻止来自特定领域的访问者

如果您有来自您不欢迎的特定域的用户,您可以禁止他们从您的网站。例如,如果你的网站被列在一个你不想要流量的地方(例如成人网站,黑帽网站等),你可以用403个禁止页面为他们服务。你需要mod_rewrite启用了,但由于通常是开着的,您应该会没事的。添加以下代码片段:

<IfModule mod_rewrite.c>RewriteEngine on

RewriteCond %{HTTP_REFERER} bannedurl1.com [NC,OR]

RewriteCond %{HTTP_REFERER} bannedurl2.com [NC,OR]

RewriteRule .* - [F]</ifModule>

你需要替换bannedurl1.combannedurl2.com等你想要的域名黑名单。您可能需要使用[NC]标志,因为它指定您输入的域名不区分大小写。这个[F]标志指定要采取的操作-在本例中显示403禁止错误。如果要禁止多个站点,请使用[NC,OR]标记为每个域(最后一个域除外),如果要禁止单个域,则只使用[NC]旗子。

6.阻止特定用户代理的请求

如果日志文件显示特定的用户代理(机器人或蜘蛛),则可以在.htaccess拒绝他们访问你的网站:

RewriteEngine On  RewriteBase /  SetEnvIfNoCase Referer "^$" bad_userSetEnvIfNoCase User-Agent "^badbot1" bad_userSetEnvIfNoCase User-Agent "^badbot2" bad_userSetEnvIfNoCase User-Agent "^badbot3" bad_userDeny from env=bad_user

取代badbot1, badbot1等等,以及日志文件中的机器人名称。这将使这些程序远离您的站点。

7.缓存文件

另一种加快站点加载时间的方法是通过文件缓存。为了缓存文件,需要添加以下内容:

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">Header set Cache-Control "max-age=2592000"</FilesMatch>

您可以在本例中列出的文件序列中添加更多的文件类型(或删除其中的一些类型)-做适合您的事情。您也可以使用max-age若要指定文件将在缓存中驻留的时间(以秒为单位),请执行以下操作。

8.禁用特定文件类型的缓存

如果不想缓存特定的文件类型,则更容易不将它们包括在缓存序列中。但是,有时文件可能会被缓存,即使您没有显式地列出它们,在这种情况下,您可能只想禁用它们的缓存。通常,您希望禁用动态文件(如脚本)的缓存。以下是如何做到这一点:

<FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$">Header unset Cache-Control</FilesMatch>

只需管道文件,您想要禁用缓存,这就是它。

9.绕过下载对话

默认情况下,当您尝试从Web服务器下载文件时,您将得到一个对话框,询问您是否要保存或打开该文件。这种对话对大型媒体文件或PDF尤其令人恼火。如果您上传到服务器的文件是供下载的,您可以为用户省去麻烦,直接下载。这里是你需要设置的.htaccess:

AddType application/octet-stream .pdfAddType application/octet-stream .zipAddType application/octet-stream .mp3

10.重命名.htaccess档案

如果出于某种原因,主要是与安全相关的原因,您要重命名您的.htaccess文件,做起来很容易。理论上,重命名.htaccess在您的服务器上运行的应用程序中,文件不应该引起问题,但是如果您在重命名该文件之后偶然注意到这些问题,只需将其重命名为它的原始名称即可。

AccessFileName htac.cess

您还需要更新文件本身或任何地方的任何条目。.htaccess被提到,否则你会得到很多错误。

11.更改默认索引页

如果希望索引页与默认值有所不同index.html, index.php, index.htm等等,这很容易做。以下是您需要添加的内容.htaccess:

DirectoryIndex mypage.html

取代mypage.html使用您想要用作索引的页面的实际URL,您就完成了。

12.重定向到安全的https连接

如果您正在使用https,并且希望将用户重定向到站点的安全页面,请使用以下命令:

RewriteEngine OnRewriteCond %{HTTPS} !onRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

13.限制PHP文件上传限制,最大POST数据大小,最大脚本执行时间等。

.htaccess允许您设置一些直接影响PHP应用程序的值。例如,如果您想在PHP中设置上传限制,这样您就不会因为大文件而耗尽托管空间,请使用以下命令:

php_value upload_max_filesize 15M

当然,您可以将值设置为任何您认为合适的值-在本例中,15m(MB)不是固定的。还可以限制PHP上传的最大POST大小,为此,添加以下内容:

php_value post_max_size 10M

同样,您也可以更改10M任何适合你的价值。如果不希望脚本永远执行,可以通过以下方法限制它们的执行时间:

php_value max_execution_time 240

240脚本终止前的秒数,正如您所猜测的,它可能是任何值。最后,如果要限制脚本解析输入数据的时间,请使用以下命令:

php_value max_input_time 180

并以秒为单位设定适合你的值。

14.伪装档案类型

大港设计网站有时候你不想让用户知道你网站上文件的类型。隐藏这些信息的一种方法是伪装它们。例如,您可以使所有文件看起来像是HTML或PHP文件:

ForceType application/x-httpd-phpForceType application/x-httpd-php

有更多的事情可以做.htaccess..例如,您可以设置站点页面的自动翻译,或设置服务器时区,或从URL中删除www,或者在开始实验之前使用高级目录列表等。.htaccess,总是备份原始.htaccess因此,如果事情没有按计划进行,则需要还原到一个工作副本。


寒枫总监

来电咨询

18868949445

微信咨询

寒枫总监

TOP