這是一篇關于joomla的htaccess文件使用的教程文章,教程列舉了多個範例供使用者參考。野草對此教程進行了翻譯,但某些地方,可能由于理解不深,翻譯得有所偏差,希望大家可以就此指正或交流。
首先,把RewriteEngine設置啓用,并設置Options
+FollowSymLinks
在任何情況下,隻要您沒有指定FollowSymLinks的選項(即Options
FollowSymLinks),或者指定了
SymLinksIfOwnerMatch選項,Apache将不得不調用額外的系統函數來檢查符号鏈接。每次針對文件名的請求都将觸發一次檢查。
如果你沒有使用followsymlinks規則而網站訪問正常,說明你的服務器配置已經默認調用followsymlinks的重寫規則,你無需再爲你的htaccess文件定義了。但在有些服務器500
Server Error之後的錯誤日志中提示需要定義SymLinks使得rewrite重寫規則起做用。
# 啓用Apache的重寫模塊
RewriteEngine On
Options +FollowSymLinks
用戶代理黑名單
#下面列表中的用戶代理(浏覽器、下載軟件、搜索引擎機器人等)可能已經不存在或者不會影響到你的網站。因爲互聯網日新月異,因此該列表永遠不可能是完整的,它隻是參照了多個“安全”郵件列表或論壇的讨論,例如
http://www.webmasterworld.com/search_engine_spiders/
。如果你依靠此列表作爲你的唯一安全機制是不明智的做法。
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:
craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
#請注意黑名單列表的最後不要使用[OR]
#給以上列表的用戶代理返回一個403錯誤(提示無權限訪問)
RewriteRule .* - [F]
其他有用的設置
ServerSignature Off
#
一般來說,Web服務器默認的隻支持Post和Get這兩種“隻讀”的請求方法。但是随着Ajax XMLHttpRequest 和
REST風格應用的深入,我們發現Http 1.1協議還支持如下請求方法(Request
Method):DELETE、OPTIONS、PUT、HEAD和TRACE,緻使服務存在安全隐患。可以使用以下語句禁止
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC,OR]
RewriteCond %{THE_REQUEST} (\\r|\\n|%0A|%0D) [NC,OR]
RewriteCond %{HTTP_REFERER} (<|>|’|%0A|%0D|%27|%3C|%3E|%00)
[NC,OR]
RewriteCond %{HTTP_COOKIE} (<|>|’|%0A|%0D|%27|%3C|%3E|%00)
[NC,OR]
RewriteCond %{REQUEST_URI}
^/(,|;|:|<|>|”>|”<|/|\\\.\.\\).{0,9999} [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT}
^(java|curl|wget) [NC,OR]
RewriteCond %{HTTP_USER_AGENT}
(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner)
[NC,OR]
RewriteCond %{HTTP_USER_AGENT}
(libwww-perl|curl|wget|python|nikto|scan) [NC,OR]
RewriteCond
%{HTTP_USER_AGENT} (<|>|’|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
#Block mySQL injects
RewriteCond %{QUERY_STRING}
(;|<|>|’|”|\)|%0A|%0D|%22|%27|%3C|%3E|%00).*(/\*|union|select|insert|cast|set|declare|drop|update|md5|benchmark)
[NC,OR]
RewriteCond %{QUERY_STRING} \.\./\.\. [OR]
RewriteCond %{QUERY_STRING} (localhost|loopback|127\.0\.0\.1)
[NC,OR]
RewriteCond %{QUERY_STRING} \.[a-z0-9] [NC,OR]
RewriteCond
%{QUERY_STRING} (<|>|’|%0A|%0D|%27|%3C|%3E|%00) [NC]
# Note: The final
RewriteCond must NOT use the [OR] flag.
# Return 403 Forbidden error.
RewriteRule .* index.php [F]
推薦的高階htaccess文件
有關讨論可以在此頁面找到:http://forum.joomla.org/viewtopic.php?f=432&t=549841
注意:某些服務器設置不正确可能會引起500頁面錯誤。
高階 .htaccess
版本2.5(建議) - 2011年5月16日
#這是一個.htaccess模闆文件,你可以把它放置到你的網站來增加網站的安全和性能。但這并不意味着适用于你的網站。你需要修改此文件以符合你的網站需求,需要注意的是,你必須把文件中的example.com替換成你真實的域名。
#部分規則設置過于嚴格,可能導緻合法的訪問請求出現問題,你有責任注釋它們或者添加例外規則。最值得注意的是,這些高級的規則會導緻
minifiers、eXtplorer、VirtueMart或其他一些使用非标準腳本入口的擴展出現問題,你必須手動添加他們的例外規則。
#某部分規則(取決于你的服務器配置)可能會導緻你的網站出現500頁面錯誤。唯一的解決方法是通過不斷測試(注釋)來找出哪部分規則導緻錯誤。
#非常感謝Brian Teeman, Ken Crowder, Radek Suski and Fotis
Evangelou分享他們的.htaccess規則和促進此文件的創建,特别感謝Jon Brown的分享他的研究與幫助改善此文件。
#還要感謝John的評論和g1smd抽空優化文件的處理速度。
#通常建議在實際使用中删除本文件的注釋以提高文件的處理速度。
#你希望點幾下鼠标就可以創建自己的定制.htaccess文件?AkeebaBackup.com的Admin Tools
Professional可以滿足你的需求,而且還有其他強大的功能。訪問:http://www.akeebabackup.com/software/admin-tools.html
#玩得開心,注意安全。
分享到:
相关推荐
**Joomla 1.6 文件上传下载组件** Joomla 1.6 文件上传下载组件是一款专为Joomla 1.6版本设计的扩展程序,它允许网站管理员在网站上创建一个安全、用户友好的文件上传和下载平台。该组件不仅提高了用户交互性,还为...
本文将详细介绍两种保护Joomla站点配置文件的方法:“隐姓埋名”和使用`protconf`组件。 #### “隐姓埋名” 这种方法的基本思路是通过更改`configuration.php`文件的名称来降低其被恶意访问的风险。尽管这并不是一...
Joomla是一种广泛使用的开源内容管理系统(CMS),专为构建网站和管理在线内容而设计。它以其灵活性、可扩展性和...在下载并安装Joomla的过程中,理解和使用这些`.ini`语言文件对于创建符合用户需求的网站至关重要。
在Joomla中,`.htaccess`文件通常用于优化URL结构,使其更用户友好,同时也能提升SEO效果。 2. **robots.txt**:这是一个告诉搜索引擎哪些页面可以索引,哪些不可以的文本文件。在Joomla中,`robots.txt`有助于控制...
"joomla使用模板 美观"这个标题暗示了我们将会探讨如何在Joomla中使用模板来提升网站的视觉吸引力。 在Joomla中,模板是控制网站外观的关键元素。它们决定了页面布局、颜色方案、字体样式以及其它设计细节。使用...
2. **找到语言文件位置**:在Joomla的安装目录下,通常语言包文件位于`/language`目录中。对于Com_PhoCaDownload,可能在`/language/en-GB/com_phocadownload.ini`(或其他英文语言代码如`en-US`)。 3. **替换文件...
Joomla是一款广泛使用的开源内容管理系统(CMS),专为构建网站和在线应用程序而设计。这个压缩包包含的是Joomla中文版的安装文件,意味着它已经针对中文用户进行了本地化处理,便于中文用户理解和操作。 首先,...
对于Joomla和JEvents的用户来说,拥有中文语言文件至关重要,因为这能帮助中国用户更方便地理解和操作这两个平台,提高工作效率,同时也有助于吸引和满足中文使用者的需求。总的来说,这个语言包是Joomla 2.5和...
大部分中国用户对Joomla的使用停留在基础阶段,仅能满足基本的建站需求。相比之下,国内的一些CMS系统由于更贴近本地化需求和提供丰富的中文教程,因此在市场占有率上占据了优势。 其次,Joomla的快速更新迭代也...
`LICENSE.txt` 文件包含了 Joomla 的许可协议,详细阐述了软件的使用、修改和分发规则。Joomla 是根据 GNU General Public License (GPL) 版本 2 或更高版本授权的,这意味着你可以自由地使用、修改和分享 Joomla 的...
1. **LICENSE.txt**: 这个文件包含了Joomla软件的许可协议,详细说明了用户可以如何使用、修改和分发Joomla的源代码。Joomla遵循GNU General Public License v2或更高版本,这确保了软件的开源性和自由性。 2. **...
3. **LICENSE.txt**: 这个文件包含了Joomla的许可协议,Joomla遵循GNU General Public License v2或更高版本,这意味着你可以自由地使用、修改和分发Joomla源代码,但需遵守其中的版权和开源规定。 4. **README.txt...
【标题】:“JOOMLA开源网站源码” 【正文】: JOOMLA是一个深受全球开发者喜爱的开源内容管理...通过理解其特点、熟悉内部文件结构以及掌握基本的使用和维护方法,您可以充分利用JOOMLA创建出满足需求的个性化网站。
在Joomla中,`.htaccess`文件用于优化网站性能,如缓存控制和防止目录浏览。 2. **robots.txt**:此文件用于指示搜索引擎爬虫哪些页面可以抓取,哪些不能。通过定义规则,可以避免敏感信息被搜索引擎收录,同时优化...
首先,`README.txt`文件通常包含了关于安装、更新和使用Joomla的基本指南,包括系统需求、安装步骤、许可证信息等。它是快速了解项目的重要入口。`LICENSE.txt`文件则会详细说明Joomla的开源许可证,通常遵循GNU ...
这个版本是特别针对中文用户优化的,提供了全面的中文支持,使得不懂英文的用户也能轻松管理和使用Joomla平台。 在【描述】中提到的“Joomla2.5.6中文安装包”,意味着这个压缩文件包含了进行完整安装所需的所有...
5. **htaccess.txt** 和 **web.config.txt**:这些文件用于配置服务器的重写规则,以实现URL美化和其他高级功能,如防止目录浏览和提高安全性。 6. **bin** 目录:可能包含一些系统级的二进制或脚本文件。 7. **...
- `joomla.xml`:这是Joomla的安装清单文件,包含了安装过程中的所有信息。 - `bin`:这个文件夹包含了Joomla的二进制脚本和工具。 - `images`:存放网站的图像资源。 **3. Joomla 3.x 特性** Joomla 3.x版本引入...
12. **includes**:这个文件夹包含了Joomla核心的一些重要文件,比如数据库连接、全局变量定义、函数库等,它们是Joomla系统运行的基础。 总的来说,Joomla_core-v3.4.8双语版提供了一个强大的平台,用于构建多语言...
2. **添加 JavaScript**:虽然在这个例子中没有直接添加 JS 文件,但通常你可以使用类似的方法 (`$doc->addScript()`) 来引入 JavaScript 文件,或者使用 `JHtml::_('behavior.framework', true);` 这样的语句来启用...