Detaillierte Erläuterung der Apache .htaccess-Datei und Zusammenfassung der Konfigurationstechniken

PHP中文网
Freigeben: 2016-08-18 09:15:42
Original
1948 Leute haben es durchsucht

1. Die Grundfunktion von .htaccess

.htaccess ist eine reine Textdatei, die Anweisungen zur Apache-Serverkonfiguration speichert.
Die Hauptfunktionen von .htaccess sind: URL-Umschreiben, benutzerdefinierte Fehlerseiten, MIME-Typkonfiguration und Zugriffskontrolle usw. Dies spiegelt sich hauptsächlich in pseudostatischen Anwendungen, Bild-Hotlink-Schutz, benutzerdefinierten 404-Fehlerseiten, Blockieren/Zulassen bestimmter IPs/IP-Segmente, Durchsuchen von Verzeichnissen und Homepages, Verhindern des Zugriffs auf bestimmte Dateitypen, Dateikennwortschutz usw. wider.
Der Anwendungsbereich von .htaccess bezieht sich hauptsächlich auf das aktuelle Verzeichnis.


2. .htaccess-Konfiguration aktivieren
Um .htaccess zu aktivieren, müssen Sie httpd.conf ändern, AllowOverride aktivieren und AllowOverride verwenden, um die Verwendung bestimmter Befehle einzuschränken.
Nachdem Sie die Datei httpd.conf mit einem Texteditor geöffnet haben, suchen Sie nach

und kopieren Sie den Code wie folgt:

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
改为:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
Nach dem Login kopieren


Wenn Sie einen Dateinamen verwenden müssen außer .htaccess. Dies kann mit dem Befehl AccessFileName geändert werden. Wenn Sie beispielsweise .config verwenden müssen, können Sie es in der Serverkonfigurationsdatei wie folgt konfigurieren:

Kopieren Sie den Code wie folgt:

AccessFileName .config
Nach dem Login kopieren

3. .htaccess-Zugriffskontrolle

1. Grundlagen der Zugriffskontrolle: Bestellbefehl

Um den Zugriff von Benutzern auf einige Schlüsselverzeichnisse einzuschränken, werden normalerweise .htaccess-Dateien hinzugefügt wie folgt:

Kopieren Sie den Code wie folgt:

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

Erklärung:

(1) Die Wellenlinie nach Dateien zeigt an, dass „regulär Ausdrücke“ sind aktiviert. Die einfache Schreibmethode ist:

(2) Befehl „Bestellen“: Über die Parameter „Zulassen“ und „Verweigern“ findet und wendet Apache zunächst den Befehl „Zulassen“ an und wendet dann den Befehl „Verweigern“ an, um den gesamten Zugriff zu blockieren.

4. URL-Umschreibung

Das Folgende ist ein einfaches Beispiel für URL-Umschreibungsregeln:

Kopieren Sie den Code wie folgt:


# Will RewriteEngine-Modus ist aktiviert
RewriteEngine On
# Die Rewrite-Systemregeln nicht ändern
RewriteRule ^p/([0-9] ).html$ index.php?post_id=$1
RewriteRule ^u -( username|uid)-(. ).html$ space.php?$1=$2


Unter diesen bedeutet RewriteEngine das Einschalten des URL-Umschreibens und RewriteRule ist die Umschreiberegel.

5. Konfigurationsfehlerseite

Die grundlegende Syntax lautet wie folgt:

Kopieren Sie den Code wie folgt:

# custom error documents
ErrorDocument 401 /err/401.php
ErrorDocument 403 /err/403.php
ErrorDocument 404 /err/404.php
ErrorDocument 500 /err/500.php
Nach dem Login kopieren

6. Allgemeine htaccess-Befehle und Konfigurationstipps
1. Anzeige der Verzeichnisliste deaktivieren
Manchmal gibt es aus irgendeinem Grund keine Indexdatei in Ihrem Verzeichnis, was bedeutet, dass, wenn jemand etwas eingibt die Adressleiste des Browsers Wenn Sie den Pfad zum Verzeichnis angeben, werden alle Dateien im Verzeichnis angezeigt, was Sicherheitsrisiken für Ihre Website birgt.
Um dies zu vermeiden (ohne eine Menge neuer Indexdateien erstellen zu müssen), können Sie verhindern, dass die Verzeichnisliste
angezeigt wird, indem Sie den folgenden Befehl in Ihr .htaccess-Dokument eingeben:

Kopieren Sie die Code wie folgt:

Optionen -Indizes


2. Bestimmte IP-Adressen blockieren/zulassen
In manchen Fällen möchten Sie möglicherweise nur bestimmte IPs zulassen, die Benutzer möglicherweise können auf Ihre Website zugreifen (z. B. nur Benutzern mit einem bestimmten ISP den Zugriff auf ein Verzeichnis gestatten), oder sie möchten möglicherweise bestimmte IP-Adressen blockieren (z. B. um Benutzer mit niedrigem Zugriffsniveau von Ihrer Informationsseite zu isolieren). Dies funktioniert natürlich nur, wenn Sie die IP-Adresse kennen, die Sie blockieren möchten. Allerdings verwenden die meisten Online-Benutzer heutzutage dynamische IP-Adressen, sodass dies keine gängige Methode zur Nutzungsbeschränkung ist.
Sie können den folgenden Befehl verwenden, um eine IP-Adresse zu sperren:

Kopieren Sie den Code wie folgt:

ab 000.000.000.000 verweigern


Die 000.000. 000.000 ist hier: Wenn Sie bei blockierten IP-Adressen nur einige davon angeben, können Sie die Adressen des gesamten Netzwerksegments blockieren. Wenn Sie 210.10.56. eingeben, werden alle IP-Adressen von 210.10.56.0 bis 210.10.56.255 blockiert.
Sie können den folgenden Befehl verwenden, um einer IP-Adresse den Zugriff auf die Website zu erlauben:

Kopieren Sie den Code wie folgt:

erlauben ab 000.000.000.000


erlaubte IP Die Adresse ist 000.000.000.000. Sie können das gesamte Netzwerksegment zulassen, genau wie das Verbot der IP-Adresse.
Wenn Sie verhindern möchten, dass jeder auf das Verzeichnis zugreift, können Sie Folgendes verwenden:

Kopieren Sie den Code wie folgt:

Von allen ablehnen


Aber das hier Hat keinen Einfluss darauf, dass Skripte Dokumente in diesem Verzeichnis verwenden.
3. Ersetzen Sie die Indexdatei
Vielleicht möchten Sie nicht immer index.htm oder index.html als Indexdatei des Verzeichnisses verwenden. Wenn Ihre Website beispielsweise PHP-Dateien verwendet, möchten Sie möglicherweise diese verwenden index.php dient als Indexdokument für dieses Verzeichnis. Natürlich müssen Sie sich nicht auf das „Index“-Dokument beschränken, wenn Sie möchten, können Sie es sogar mithilfe von .htaccess festlegen foofoo.balh als Ihr Indexdokument!
Diese sich gegenseitig ersetzenden Indexdateien können in einer Liste angeordnet werden, und der Server sucht von links nach rechts, um zu prüfen, welches Dokument im realen Verzeichnis vorhanden ist. Wenn keine gefunden werden, wird die Verzeichnisliste angezeigt (es sei denn, Sie haben die Anzeige der Verzeichnisdateilisten deaktiviert).

Kopieren Sie den Code wie folgt:

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
Nach dem Login kopieren


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

复制代码代码如下:

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

/old/oldfile.html


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

复制代码代码如下:

Redirect /olddirectory http: ///newdirectory
Nach dem Login kopieren


这样,任何指向到站点中/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]
Nach dem Login kopieren


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]
Nach dem Login kopieren


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]
Nach dem Login kopieren

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

复制代码代码如下:

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


八、一些常用的设置
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/
Nach dem Login kopieren


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

复制代码代码如下:

AddType application/octet-stream .pdf  
AddType application/octet-stream .zip  
AddType application/octet-stream .mov
Nach dem Login kopieren


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]
Nach dem Login kopieren


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

复制代码代码如下:

ErrorDocument 401 /error/401.php  
ErrorDocument 403 /error/403.php  
ErrorDocument 404 /error/404.php  
ErrorDocument 500 /error/500.php
Nach dem Login kopieren


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
Nach dem Login kopieren


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

复制代码代码如下:

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


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

复制代码代码如下:

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


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!