rewritemap

如何在 Apache 配置中将目录列入白名单
rewritemap

如何在 Apache 配置中将目录列入白名单

在 Wordpress 中,减少服务器负载的几种有效方法之一是将各个客户端列入白名单/wp-login.php:/wp-admin/ <Directory /wp-admin> order deny,allow deny from all allow from 10.1.1.50 allow from ...other ips... </Directory> 但我不想编辑并重新加载 Apache 来更改此列表。在我的虚拟主机中,我想要: <Directory /wp-admin> ...

Admin

RewriteMap 语法 Regex
rewritemap

RewriteMap 语法 Regex

在我的 .htaccess 中我有大量指令,使用相同的语法: RewriteRule ^(.*)/PRODUCT_1.aspx http://www.site.com/product.php?id_product=2891 RewriteRule ^(.*)/PRODUCT_2.aspx http://www.site.com/product.php?id_product=2896 一切正常。现在,我在我的项目中创建了一个 RewriteMap,因为我需要提高速度(htaccess 中的 20.000 重定向 301 不行),因此: RewriteE...

Admin

如何将 Apache rewritemap 从 SDBM 转换回人类可读的文本
rewritemap

如何将 Apache rewritemap 从 SDBM 转换回人类可读的文本

我继承了旧代码,以前的开发人员使用大量大型 Apache 重写映射进行大规模重定向。唯一的问题是他们只提交了 SDBM 格式(即 .pag 和 .dir 文件)的哈希文件,而不是创建它们的可读文本。httxt2dbm 可用于从文本文件创建 SDBM 或 BDB 哈希,但不能反向创建。 我只是想找回用于这些重写映射的源文件。我该怎么做? ...

Admin

RewriteCond 中的 RewriteMap 不起作用(Apache)
rewritemap

RewriteCond 中的 RewriteMap 不起作用(Apache)

我有一个RewriteCond检查是否{QUERY_STRING}包含正确版本号的方法,如果不包含则将用户重定向到正确的版本。 例如,如果 v0.7 是最新版本,则访问的用户http://localhost/?v=0.5应该被重定向到,http://localhost/?v=0.7但由于某种原因,如果我RewriteMap在条件下使用,它不起作用...... 这有效 RewriteMap versions txt:/var/www/html/version.txt RewriteCond "%{QUERY_STRING}" !^v=0.7 RewriteRu...

Admin

Apache 2.2 IP 地址黑名单
rewritemap

Apache 2.2 IP 地址黑名单

我想动态地将一些 IP 地址列入黑名单。我正在更新主 httpd.conf,但我想动态地添加一些 IP,而不使用 .htaccess(也不使用繁重的 fail2ban)。因此,我使用 Rewrite map 创建了一个 IP 列表。它运行良好,除非我想输出 403 错误。 以下是有效的代码: <VirtualHost x.x.x.x:80> RewriteEngine on RewriteMap hosts-deny "txt:/var/www/htdocs/.deny" RewriteCond "${hosts-deny:%{REMOT...

Admin

如何处理丢失的 RewriteMap 文件?
rewritemap

如何处理丢失的 RewriteMap 文件?

我正在 Apache httpd 配置中定义一个RewriteMap。(这工作正常。) RewriteMap redirects-list txt:/path/to/redirects.txt 但是当地图文件(/path/to/redirects.txt)不存在时,服务器将抛出错误: RewriteMap:未找到映射重定向列表的文件:/path/to/redirects.txt 我想让它具有容错功能,RewriteMap当且仅当文件存在时才会设置。 (例如,如果它不存在,也许有一种方法可以自动使用后备,即类似的空白文件/dev/null。...

Admin

RewriteMap 不起作用,没有重写任何内容(Apache 2.4)
rewritemap

RewriteMap 不起作用,没有重写任何内容(Apache 2.4)

我的情况有点特殊:我需要将子域名重定向到随机选择的备用域名,每个域名都在单独的服务器上。想想负载平衡,只是技术上有所不同。 在研究了我的选择后,Apache 的 RewriteMap 似乎是理想的解决方案,但我似乎无法让它做任何事情。以下是我目前得到的结果: 在我的配置文件中,我添加了: RewriteMap map "rnd:/home/mydomain/public_html/servers.txt" 这是在服务器上下文中,而不是 VirtualHost 或 Directory 中。但是,我确实为 public_html 目录设置了“Allow...

Admin

使用正则表达式的 postfix smtp_generic_maps
rewritemap

使用正则表达式的 postfix smtp_generic_maps

我刚开始尝试使用 postfix 重写发件人地址。我运行一个带有debian-7.11和 的服务器postfix-2.9.6。 内容/etc/postfix/main.cf: [...] smtp_generic_maps = hash:/etc/postfix/generic [...] 内容/etc/postfix/generic: [email protected] [email protected] [email protected] [email protected] ...

Admin

无法使 RewriteMap 工作
rewritemap

无法使 RewriteMap 工作

我尝试RewriteMap在我的虚拟主机中使用,但没有任何效果。 这是我的虚拟主机文件的内容,其中有一个以 开头的条目(行)RewriteMap。从我读到的内容来看,该文件/etc/fixit.php应该被执行。但我测试了放一行简单的内容file_put_contents('/etc/test.txt','abcd', FILE_APPEND);,并没有创建 test.txt 文件。 <VirtualHost *:80> SuexecUserGroup "#1004" "#1004" ServerName test2....

Admin

使用 RewriteRule 匹配 RewriteMap 值并忽略任何尾随斜杠和字符?
rewritemap

使用 RewriteRule 匹配 RewriteMap 值并忽略任何尾随斜杠和字符?

我正在尝试在 apache 2.4 virtualhost .conf 文件中使用 RewriteMap 来重定向多个 URL。各种请求可以引用映射中的单个条目,并且我在匹配 RewriteRule 中的这些变体时遇到问题,尤其是尾部斜杠。我目前有类似以下内容: RewriteRule "^/foo/(this|that|anotherthing)/bar/(.*)" "/${map:$2}" 这很好用 /for/that/bar/request /for/this/bar/request 相同的替换,但是当路径末尾有斜杠 + 任何其他字符时,我...

Admin

Apache RewriteMap TXT 缓存 - 更新不执行
rewritemap

Apache RewriteMap TXT 缓存 - 更新不执行

使用 RewriteMap 并使用 txt 文件方法进行设置 - 效果很好。 问题是,如果我更新该 txt 文件(无论是更改还是添加条目),httpd 创建的该文件的缓存都不会更新。我不明白为什么——根据 Apache 文档: “查找到的键会被 httpd 缓存,直到 mapfile 的 mtime(修改时间)发生变化,或者 httpd 服务器重新启动。这可确保在被许多请求调用的地图上获得更好的性能。” 我认为这意味着修改文件将更新缓存。我理解错了吗?每次更新此文件时,我真的需要重新启动 httpd 服务器吗? 谢谢你的帮助 ...

Admin

编辑
rewritemap

编辑

按照 Apache 网站上的说明,我在 httpd.conf 文件末尾添加了以下内容: RewriteEngine on RewriteMap lowercase int:tolower #define the map file RewriteMap vhost txt:/web-data/vhost.map # deal with aliases as above RewriteCond %{REQUEST_URI} !^/icons/ RewriteCond %{REQUEST_URI} !^/cgi-bin/ RewriteCond ${low...

Admin

mod_rewrite 映射不起作用
rewritemap

mod_rewrite 映射不起作用

我正在尝试构建一个简单的 mod_rewrite 映射,将类别名称转换为 id,如下所示:../category/electronics -> category.php?cat=1 地图放在 www 文件夹内。代码会忽略该地图,就像它不存在一样 这是我重写的代码,有什么错误? 已编辑:catmap.txt 的路径,现在可正常工作 <VirtualHost *:80> DocumentRoot "${path}/www" .... RewriteMap cat2id txt:${path}/www/catmap.txt Rewrite...

Admin

使用 mod_rewrite 检查当前 PHP 会话,防止直接访问图像
rewritemap

使用 mod_rewrite 检查当前 PHP 会话,防止直接访问图像

我正在研究一个解决方案,以解决用户可能访问存储在服务器根目录外的文件夹中的图像(在本例中为 PDF 文件)的问题。通常,我的应用程序通过 PHP 脚本和会话来验证用户。目前没有发生的是阻止未登录的用户可能访问 PDF。 我正在寻找的解决方案(我认为)需要与 Apache 绑定。我看到了一个使用 RewriteMap 和 RewriteRule 的有趣解决方案,但是示例涉及将其放入 PDF 目录中的 .htaccess 文件中。无法使用 Apache 执行此操作(错误:此处不允许使用 RewriteMap)。我相信重写指令需要放在我可以访问的 httpd.c...

Admin

Apache RewriteRule 使用 RewriteMap 变量替换环境变量的 VAL 参数
rewritemap

Apache RewriteRule 使用 RewriteMap 变量替换环境变量的 VAL 参数

我有一个 Apache 服务器,它为应用程序(而不是浏览器)提供二进制文件。 发出请求的应用程序需要 HEX 格式的 HTTP Content-MD5 标头。Apache 中的默认且唯一选项是 Base64。如果我将“ContentDigest on”添加到我的 VirtualHost,我会以 Base64 格式获得此标头。 所以我编写了一个 perl 脚本,md5digesthex.pl,它给了我我想要的东西:十六进制格式的 MD5,但我正在努力使用 RewriteRule 让我的服务器发送结果。 这是我当前的重写配方: RewriteEngine...

Admin