问题标签 [mod-rewrite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3968 浏览

apache - .htaccess 指令*不*重定向某些 URL

在一个严重依赖.htaccessRewriteRules 的 PrettyURLs(在我的例子中是 CakePHP)的应用程序中,我如何正确设置指令以从重写中排除某些目录?那是:

默认情况下,每个请求/appRoot/*都被重写以被 接收app/webroot/index.php,并在其中对其进行分析并调用相应的控制器操作。这是通过以下指令完成的.htaccess

我现在想从这个重写中排除一些像 static/ 这样的目录。我在 Cake RewriteRules之前试过这个:

到目前为止,它不再重写请求,但现在所有请求都被跳过,甚至是不应该匹配的合法 Cake 请求^(static|otherDir).*$

我尝试了这些规则的几种变体,但无法让它按我想要的方式工作。

0 投票
9 回答
2210 浏览

security - 使用 HTTP_REFERER 阻止用户访问站点内部

我可以控制 HttpServer,但不能控制 ApplicationServer 或坐在那里的 Java 应用程序,但我需要阻止直接访问这些应用程序上的某些页面。准确地说,我不希望用户自动访问向适当的 servlet 发出直接 GET/POST HTTP 请求的表单。

所以,我决定根据HTTP_REFERER. 毕竟,如果用户在网站内部导航,它会有一个合适的HTTP_REFERER. 嗯,我就是这么想的。

我在 .htaccess 文件中实现了一个重写规则,上面写着:

我希望禁止访问未浏览站点但使用查询字符串向“servlet1”或“servlet2”servlet 发出直接 GET 请求的用户。但是我的期望突然结束了,因为正则表达式(servlet1|servlet2)/.+\?.+根本不起作用。

当我将该表达式更改为时,我真的很失望,(servlet1|servlet2)/.+而且效果如此之好,以至于我的用户无论是否浏览该网站都会被屏蔽。

所以,我的问题是:如果我没有访问/特权/时间来修改应用程序,我如何才能完成不允许“机器人”直接访问某些页面的事情?

0 投票
3 回答
2200 浏览

apache - 使用 mod_rewrite 模拟 SSL 虚拟主机?

通过与 Apache 2.2 的 SSL 连接透明地重写 URL 的最佳方法是什么?

Apache 2 本身不支持 SSL 连接的多个基于名称的虚拟主机,我听说 mod_rewrite 可以帮助解决这个问题。我想做这样的事情:

我已经设置了服务器,以便可以通过以下方式访问站点

https://secure.example.com/dbadmin

但我想将此作为https://dbadmin.example.com

如何设置它以便重写规则将 dbadmin.example.com 重写为 secure.example.com/dbadmin,但不会在客户端的地址栏上显示重写(即客户端仍然只会看到 dbadmin.example.com ),到处都是https?

0 投票
3 回答
6296 浏览

.htaccess - Mod-Rewrite 在 DocumentRoot 后面加载文件

我正在使用.htaccessandmod_rewrite指向位于 DocumentRoot 后面的文件。我的文件夹结构如下所示:

.htaccess在 webroot 中有一个文件,内容如下:

如果我尝试访问http://example.com/file.html,我会收到以下错误:

在此服务器上未找到请求的 URL /home/other_files/file.html。

甚至可以加载 DocumentRoot 后面的文件吗?如果是这样,有人可以指出我正确的方向吗?

0 投票
3 回答
1546 浏览

apache - mod_rewrite 将一个文件后缀类型别名为另一个

我希望我能足够清楚地解释这一点,但如果不让我知道,我会尽力澄清。

我目前正在使用 ColdFusion 开发一个站点,并设置了一个 mod_rewrite 规则,以使其看起来像该站点正在使用 PHP。index.php 的任何请求都由 index.cfm 处理(规则将 *.php 映射到 *.cfm)。

这很好用——到目前为止,很好。问题是如果直接请求 index.cfm(或任何 ColdFusion 页面),我想返回 404 状态代码。

如果我尝试使用 mod_rewrite 阻止对 *.cfm 文件的访问,它还会返回 404 以请求 *.php。

我想我可能不得不更改我的 Apache 配置而不是使用 .htaccess

0 投票
1 回答
54701 浏览

apache - mod_rewrite 规则重定向除一个特定路径之外的所有请求

我正在尝试使用 Apache 2.2 VirtualHost 声明中的 mod_rewrite 将所有对我的域的请求重定向到另一个域。对此有一个例外——我希望不对/audio路径的所有请求进行重定向。

我已经写了一个 RewriteCond 和 RewriteRule 来做到这一点,但这并不完全正确,我不知道为什么。正则表达式包含字符串“/audio”的负前瞻,但由于某种原因,这不匹配。这是定义:

如果我将 RewriteCond 更改为:

(即,将正斜杠放在负前瞻部分之外)然后它可以工作,但这样做的缺点是对 mydomain.net 的请求没有尾部斜杠将不会被重定向。

谁能指出我做错了什么?

(注意:上面 RewriteRule 位中域周围的尖括号是由 StackOverflow.com 添加的——它们在实际代码中不存在!)


以下是规则:


谢谢@mercutio - 这很有意义,但它似乎仍然不起作用。

这是我向http://mydomain.net/audio/something.mp3发出请求时 mod_rewrite 日志所说的内容:

由于 REQUEST_URI 确实以/audio我希望 RewriteRule 被忽略。

0 投票
3 回答
10748 浏览

performance - 使用 Mod-Rewrite 有什么负面影响吗?

我知道 mod-rewrite 完成了很多积极的事情。但是有负面的吗?显然,如果你的规则写得不好,你就会遇到问题。但是,如果您有一个大容量站点并且您经常使用 mod-rewrite,它会对性能产生重大影响吗?我在 Google 上快速搜索了一些基准,但没有找到太多。

0 投票
2 回答
22585 浏览

apache - Apache - 我如何将单个和/或所有模块构建为共享模块

在 Mac OS X 10.5 上,我下载了最新版本的 Apache 2.2.9。在通常的配置、制作、安装舞蹈之后,我构建了一个没有 mod_rewrite 的 apache。这不是静态链接的,模块也没有构建在 /modules 文件夹中。

我必须执行以下操作来构建 Apache 和 mod_rewrite:

  • 有没有办法告诉 Apache 将所有模块构建为共享模块 (DSO),以便我可以控制从 Apache 配置加载?
  • 既然我已经构建了 Apache 和 mod_rewrite DSO,如何在不构建所有 Apache 的情况下构建另一个共享模块?

(上次我在 Solaris 上构建 Apache(2.2.8)时,默认情况下它将所有内容构建为共享模块。)

0 投票
3 回答
39284 浏览

apache - Apache基于子域的重写

我正在尝试将通配符域的请求重定向到子目录。
IE。something.blah.example.com-->blah.example.com/something

我不知道如何获取要在重写规则中使用的子域名。

最终解决方案:

或者正如 pilif 所指出的那样

0 投票
10 回答
48109 浏览

iis - IIS 7.0 的 mod_rewrite 等效项

是否有 IIS 7.0 的 mod_rewrite 等效项

a) 或多或少完整

b) 适用于生产环境,即久经考验/可靠/安全

你有基于经验的推荐吗?