찾다
백엔드 개발PHP 튜토리얼Apache .htaccess 파일에 대한 자세한 설명 및 구성 기술 요약

1. .htaccess의 기본 기능

.htaccess는 Apache 서버 구성과 관련된 지침을 저장하는 일반 텍스트 파일입니다.
.htaccess의 주요 기능은 URL 재작성, 사용자 정의 오류 페이지, MIME 유형 구성 및 액세스 제어 등입니다. 주로 의사 정적 애플리케이션, 이미지 핫링크 보호, 사용자 정의 404 오류 페이지, 특정 IP/IP 세그먼트 차단/허용, 디렉토리 검색 및 홈페이지, 지정된 파일 형식에 대한 액세스 금지, 파일 비밀번호 보호 등에 반영됩니다.
.htaccess의 사용 범위는 주로 현재 디렉터리에 대한 것입니다.


2. .htaccess 구성 활성화
.htaccess를 활성화하려면 httpd.conf를 수정하고 AllowOverride를 활성화한 다음 AllowOverride를 사용하여 특정 명령의 사용을 제한해야 합니다.
httpd.conf 파일을 텍스트 편집기로 연 후

을 검색하여 다음과 같이 코드를 복사하세요.

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
改为:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>


파일 이름을 사용해야 하는 경우 .htaccess 이외의 파일은 AccessFileName 명령을 사용하여 변경할 수 있습니다. 예를 들어 .config를 사용해야 하는 경우 서버 구성 파일에서 다음과 같이 구성할 수 있습니다.

다음과 같이 코드를 복사합니다.

AccessFileName .config

3. .htaccess 액세스 제어

1. 액세스 제어의 기본: 명령 명령

사용자가 일부 주요 디렉터리에 액세스하지 못하도록 제한하기 위해 일반적으로 .htaccess 파일이 추가됩니다.

다음과 같이 코드를 복사하세요.

<Files  ~ "^.*\.([Ll][Oo][Gg])|([eE][xX][eE])">
 Order allow,deny
 Deny from all
</Files>

설명:

(1) Files 뒤의 물결선은 "일반"을 나타냅니다. 표현"이 활성화됩니다. 간단한 쓰기 방법은

(2) Order 명령: Allow, Deny 매개변수를 통해 Apache는 먼저 Allow 명령을 찾아서 적용한 다음 Deny 명령을 적용하여 모든 액세스를 차단할 수도 있습니다.

4. URL 재작성

다음은 URL 재작성 규칙의 간단한 예입니다.

다음과 같이 코드를 복사하세요.


# Will RewriteEngine 모드가 켜져 있습니다
RewriteEngine On
# Rewrite 시스템 규칙을 수정하지 마세요
RewriteRule ^p/([0-9]+).html$ index.php?post_id=$1
RewriteRule ^ u- (username|uid)-(.+).html$ space.php?$1=$2


그 중 RewriteEngine은 URL 재작성을 켜는 것을 의미하고 RewriteRule은 재작성 규칙입니다.

5. 구성 오류 페이지

기본 구문은 다음과 같습니다.

다음과 같이 코드를 복사하세요.

# custom error documents
ErrorDocument 401 /err/401.php
ErrorDocument 403 /err/403.php
ErrorDocument 404 /err/404.php
ErrorDocument 500 /err/500.php

6. 일반적인 htaccess 명령 및 구성 팁
1. 디렉토리 목록 표시 비활성화
때로는 어떤 이유로 디렉토리에 인덱스 파일이 없는 경우가 있습니다. 브라우저 주소 표시줄 디렉토리 경로를 지정하면 디렉토리에 있는 모든 파일이 표시되므로 웹 사이트에 보안 위험이 따릅니다.
이를 방지하려면(새 인덱스 파일을 여러 개 만들지 않고도) .htaccess 문서에 다음 명령을 입력하여
디렉터리 목록이 표시되지 않도록 할 수 있습니다.

코드는 다음과 같습니다:

Options -Indexes


2. 특정 IP 주소를 차단/허용
경우에 따라 특정 IP만 허용하려는 경우도 있습니다. 사용자는 다음을 수행할 수 있습니다. 귀하의 웹 사이트에 액세스하거나(예: 특정 ISP를 사용하는 사용자만 디렉토리에 들어갈 수 있도록 허용) 또는 특정 IP 주소를 차단하려고 할 수도 있습니다(예: 정보 페이지에서 낮은 수준의 사용자를 격리하기 위해). 물론 이 방법은 차단하려는 IP 주소를 알고 있는 경우에만 작동합니다. 그러나 요즘 온라인 사용자 대부분은 동적 IP 주소를 사용하므로 이는 사용을 제한하는 일반적인 방법은 아닙니다.
다음 명령을 사용하여 IP 주소를 차단할 수 있습니다.

다음과 같이 코드를 복사하세요.

deny from 000.000.000.000


000.000. 여기서 000.000은 차단된 IP 주소의 경우, 그 중 몇 개만 지정하면 전체 네트워크 세그먼트의 주소를 차단할 수 있습니다. 210.10.56.을 입력하면 210.10.56.0부터 210.10.56.255까지의 모든 IP 주소가 차단됩니다.
다음 명령을 사용하여 IP 주소가 웹 사이트에 액세스하도록 허용할 수 있습니다.

다음과 같이 코드 코드를 복사하세요.

allow from 000.000.000.000


허용 IP 주소는 000.000.000.000 입니다. IP 주소를 금지하는 것과 마찬가지로 전체 네트워크 세그먼트를 허용할 수 있습니다.
모든 사람이 디렉토리에 액세스하는 것을 방지하려면 다음을 사용할 수 있습니다.

다음과 같이 코드를 복사합니다.

모두 거부


그러나 이것은 이 디렉토리에 있는 스크립트의 문서 사용에 영향을 주지 않습니다.
3. 인덱스 파일 교체
index.htm 또는 index.html을 항상 디렉토리의 인덱스 파일로 사용하고 싶지 않을 수도 있습니다. 예를 들어, 사이트에서 PHP 파일을 사용하는 경우 다음을 사용할 수 있습니다. index.php는 이 디렉토리의 색인 문서 역할을 합니다. 물론 "인덱스" 문서로 제한할 필요는 없습니다. 원하는 경우 .htaccess를 사용하여 설정할 수도 있습니다. foofoo.balh를 색인 문서로 사용하세요!
이러한 상호 대체 색인 파일은 목록으로 정렬될 수 있으며, 서버는 실제 디렉터리에 어떤 문서가 존재하는지 확인하기 위해 왼쪽에서 오른쪽으로 검색합니다. 아무 것도 발견되지 않으면 디렉터리 목록이 표시됩니다(디렉터리 파일 목록 표시를 끄지 않은 경우).

다음과 같이 코드를 복사하세요.

DirectoryIndex index.php index.php3 messagebrd.pl index.html index.htm


4.重定向(rewrite)
.htaccess 最有用的功能之一就是将请求重定向到同站内或站外的不同文档。这在你改变了一个文件名称,但仍然想让用户用旧地址访问到它时,变的极为有用。另一个应用(我发现的很有用的)是重定向到一个长URL,例如在我的时事通讯中,我可以使用一个很简短的URL来指向我的会员链接。以下是一个重定向文件的例子:

复制代码代码如下:

Redirect /location/from/root/file.ext http:    ///new/file/location.xyz


上述例子中,访问在root目录下的名为oldfile.html可以键入:

复制代码代码如下:

/oldfile.html
访问一个旧次级目录中的文件可以键入:

/old/oldfile.html


你也可以使用.htaccess重定向整个网站的目录。假如你的网站上有一个名为olddirectory的目录,并且你已经在一个新网站http: ///newdirectory/上建立了与上相同的文档,你可以将旧目录下所有的文件做一次重定向而不必一一声明:

复制代码代码如下:

Redirect /olddirectory http: ///newdirectory


这样,任何指向到站点中/olddirectory目录的请求都将被重新指向新的站点,包括附加的额外URL信息。例如有人键入:


http: ///olddirecotry/oldfiles/images/image.gif
请求将被重定向到:

http: ///newdirectory/oldfiles/images/image.gif


如果正确使用,此功能将极其强大。

 

七、安全配置
下面的htaccess代码能够提高你的web服务器的安全水平。图片链接盗用保护非常有用,它能防止其他人偷盗使用你的服务器上的图片资源。
1. 通过.htaccess放盗链
痛恨那些偷盗链接你的web服务器上的图片资源而耗尽了你的带宽的行为吗?试试这个,你可以防止这种事情的发生。

复制代码代码如下:

RewriteBase /  
RewriteCond %{HTTP_REFERER} !^$  
RewriteCond %{HTTP_REFERER} !^http://(www.)?php.cn/.*$ [NC]  
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]


2. 防黑客
如果你想提高网站的安全等级,你可以去掉下面的几行代码,这样可以防止一些常见恶意URL匹配的黑客攻击技术。

复制代码代码如下:

RewriteEngine On  
# proc/self/environ? 没门!  
RewriteCond %{QUERY_STRING} proc/self/environ [OR]  
# 阻止脚本企图通过URL修改mosConfig值  
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR]  
# 阻止脚本通过URL传递的base64_encode垃圾信息  
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]  
# 阻止在URL含有<script>标记的脚本  
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]  
# 阻止企图通过URL设置PHP的GLOBALS变量的脚本  
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]  
# 阻止企图通过URL设置PHP的_REQUEST变量的脚本  
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})  
# 把所有被阻止的请求转向到403禁止提示页面!  
RewriteRule ^(.*)$ index.php [F,L]


3. 阻止访问你的 .htaccess 文件或者指定类型的文件
下面的代码可以阻止别人访问你的.htaccess文件。同样,你也可以设定阻止多种文件类型。

# 保护你的 htaccess 文件  
<Files .htaccess>  
order allow,deny  
deny from all  
</Files>  
# 阻止查看指定的文件  
<Files secretfile.jpg>  
order allow,deny  
deny from all  
</Files>  
# 多种文件类型  
<FilesMatch “.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$”>  
 Order Allow,Deny  
Deny from all  
</FilesMatch>[/code]

4.禁止脚本执行,加强你的目录安全

复制代码代码如下:

# 禁止某些目录里的脚本执行权限  
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi  
Options -ExecCGI

 


八、一些常用的设置
1.时区设置
有些时候,当你在PHP里使用date或mktime函数时,由于时区的不同,它会显示出一些很奇怪的信息。下面是解决这个问题的方法之一。就是设置你的服务器的时区。你可以在这里找到所有支持的时区的清单。
1.SetEnv TZ Australia/Melbourne 
2. seo/seo.html" target="_blank">搜索引擎友好的301永久转向方法
为什么这是搜索引擎友好的呢?因为现在很多现代的搜索引擎都有能根据检查301永久转向来更新它现有的记录的功能。

复制代码代码如下:

Redirect 301 http:    //www.php.cn/article/index http:    //www.php.cn/article/


3. 屏蔽下载对话框
通常,当你下载东西的时候,你会看到一个对话框询问你是保持这个文件还是直接打开它。如果你不想看到这个东西,你可以把下面的一段代码放到你的.htaccess文件里。

复制代码代码如下:

AddType application/octet-stream .pdf  
AddType application/octet-stream .zip  
AddType application/octet-stream .mov


4. 省去www前缀
SEO的一个原则是,确保你的网站只有一个URL。因此,你需要把所有的通过www的访问转向的非www,或者反这来。

复制代码代码如下:

RewriteEngine On  
RewriteBase /  
RewriteCond %{HTTP_HOST} ^www.php.cn [NC]  
RewriteRule ^(.*)$ http:    //www.php.cn/$1 [L,R=301]


5. 个性化Error页面
对每个错误代码定制自己个性化的错误页面。

复制代码代码如下:

ErrorDocument 401 /error/401.php  
ErrorDocument 403 /error/403.php  
ErrorDocument 404 /error/404.php  
ErrorDocument 500 /error/500.php


6. 压缩文件
通过压缩你的文件体积来优化网站的访问速度。

复制代码代码如下:

# 压缩 text, html, javascript, css, xml:  
AddOutputFilterByType DEFLATE text/plain  
AddOutputFilterByType DEFLATE text/html  
AddOutputFilterByType DEFLATE text/xml  
AddOutputFilterByType DEFLATE text/css  
AddOutputFilterByType DEFLATE application/xml  
AddOutputFilterByType DEFLATE application/xhtml+xml  
AddOutputFilterByType DEFLATE application/rss+xml  
AddOutputFilterByType DEFLATE application/javascript  
.AddOutputFilterByType DEFLATE application/x-javascript


7. 缓存文件
缓存文件是另外一个提高你的网站访问速度的好方法。

复制代码代码如下:

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


8. 对某些文件类型禁止使用缓存
而另一方面,你也可以定制对某些文件类型禁止使用缓存。

复制代码代码如下:

# 显式的规定对脚本和其它动态文件禁止使用缓存  
<FilesMatch “.(pl|php|cgi|spl|scgi|fcgi)$”>  
Header unset Cache-Control  
</FilesMatch>


성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
图文详解apache2.4+php8.0的安装配置方法图文详解apache2.4+php8.0的安装配置方法Dec 06, 2022 pm 04:53 PM

本文给大家介绍如何安装apache2.4,以及如何配置php8.0,文中附有图文详细步骤,下面就带大家一起看看怎么安装配置apache2.4+php8.0吧~

Linux apache怎么限制并发连接和下载速度Linux apache怎么限制并发连接和下载速度May 12, 2023 am 10:49 AM

mod_limitipconn,这个是apache的一个非官方模块,根据同一个来源ip进行并发连接控制,bw_mod,它可以根据来源ip进行带宽限制,它们都是apache的第三方模块。1.下载:wgetwget2.安装#tar-zxvfmod_limitipconn-0.22.tar.gz#cdmod_limitipconn-0.22#vimakefile修改:apxs=“/usr/local/apache2/bin/apxs”#这里是自己apache的apxs路径,加载模块或者#/usr/lo

apache版本怎么查看?apache版本怎么查看?Jun 14, 2019 pm 02:40 PM

查看​apache版本的步骤:1、进入cmd命令窗口;2、使用cd命令切换到Apache的bin目录下,语法“cd bin目录路径”;3、执行“httpd -v”命令来查询版本信息,在输出结果中即可查看apache版本号。

超细!Ubuntu20.04安装Apache+PHP8环境超细!Ubuntu20.04安装Apache+PHP8环境Mar 21, 2023 pm 03:26 PM

本篇文章给大家带来了关于PHP的相关知识,其中主要跟大家分享在Ubuntu20.04 LTS环境下安装Apache的全过程,并且针对其中可能出现的一些坑也会提供解决方案,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

nginx,tomcat,apache的区别是什么nginx,tomcat,apache的区别是什么May 15, 2023 pm 01:40 PM

1.Nginx和tomcat的区别nginx常用做静态内容服务和代理服务器,直接外来请求转发给后面的应用服务器(tomcat,Django等),tomcat更多用来做一个应用容器,让javawebapp泡在里面的东西。严格意义上来讲,Apache和nginx应该叫做HTTPServer,而tomcat是一个ApplicationServer是一个Servlet/JSO应用的容器。客户端通过HTTPServer访问服务器上存储的资源(HTML文件,图片文件等),HTTPServer是中只是把服务器

php站用iis乱码而apache没事怎么解决php站用iis乱码而apache没事怎么解决Mar 23, 2023 pm 02:48 PM

​在使用 PHP 进行网站开发时,你可能会遇到字符编码问题。特别是在使用不同的 Web 服务器时,会发现 IIS 和 Apache 处理字符编码的方法不同。当你使用 IIS 时,可能会发现在使用 UTF-8 编码时出现了乱码现象;而在使用 Apache 时,一切正常,没有出现任何问题。这种情况应该怎么解决呢?

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群Jun 09, 2023 pm 06:20 PM

Pacemaker是适用于类Linux操作系统的高可用性集群软件。Pacemaker被称为“集群资源管理器”,它通过在集群节点之间进行资源故障转移来提供集群资源的最大可用性。Pacemaker使用Corosync进行集群组件之间的心跳和内部通信,Corosync还负责集群中的投票选举(Quorum)。先决条件在我们开始之前,请确保你拥有以下内容:两台RHEL9/8服务器RedHat订阅或本地配置的仓库通过SSH访问两台服务器root或sudo权限互联网连接实验室详情:服务器1:node1.exa

【总结】apache调用不起来php5.6的原因和解决方法【总结】apache调用不起来php5.6的原因和解决方法Mar 28, 2023 pm 03:00 PM

PHP5.6和Apache是Web开发中最常用的工具之一。然而,有时候,当我们尝试调用PHP5.6时,会遇到一些问题,例如无法调用PHP文件或页面等等。在本文中,我将探讨为什么您可能无法调用PHP5.6以及如何解决这个问题。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는