问题标签 [mod-alias]

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 投票
7 回答
16160 浏览

.htaccess - 如何使用 .htaccess 重定向到包含 HTTP_HOST 的 URL?

问题

我需要将一些简短的方便 URL 重定向到更长的实际 URL。有问题的站点使用一组子域来识别一组开发或实时版本。

我希望某些请求被重定向到的 URL 包含 HTTP_HOST,这样我就不必为每个主机创建自定义 .htaccess 文件。

特定于主机的示例(从 .htaccess 文件中截取)

此示例适用于在 dev01.example.com 上运行的开发版本。如果我在 dev02.example.com 下运行的开发版本的主 .htaccess 文件中使用同一行,我最终会被重定向到错误的位置。

理想规则(不确定语法是否正确)

这条规则不起作用,只是作为我想要实现的一个例子。然后我可以在许多不同的主机下使用完全相同的规则并获得正确的结果。

答案?

  • 这可以用 mod_alias 完成还是需要更复杂的 mod_rewrite?
  • 如何使用 mod_alias 或 mod_rewrite 来实现?如果可能的话,我更喜欢 mod_alias 解决方案。

澄清

我不在同一台服务器上。我想要:

我希望能够在 example.com 和 dev.example.com 上的 .htaccess 文件中使用相同的规则。在这种情况下,我需要能够将 HTTP_HOST 作为变量引用,而不是在请求重定向到的 URL 中逐字指定它。

我将按照建议调查 HTTP_HOST 参数,但希望有一个可行的示例。

0 投票
1 回答
1155 浏览

apache - 仅当本地目录不存在时才在 Apache 中使用别名?

我们正在运行一个经销商网络主机,并为其中的所有站点设置一个特定目录的别名。这一切都是通过 WHM/Cpanel 发生的,这可能会使我的问题复杂化。

  1. 我们希望所有主机都通过服务器上的共享位置运行它们的“/concrete”目录。通过将“别名/concrete/”/usr/local/share/concrete5/concrete-latest/concrete/”添加到 WHM 中的 apache 包含编辑器,这可以正常工作。

  2. 但是,如果虚拟主机的特定 webroot 中存在本地具体/目录,我们宁愿使用它而不是全局使用“/concrete”。如果我们可以在 WHM 内的虚拟主机上下文中更改此别名,那也很好(而且我还没有找到一种很好的方法来修改 WHM 中的虚拟主机部分,而无需破解我不相信的文件'应该破解。)

想法?

0 投票
2 回答
23295 浏览

apache - mod_rewrite 还是 mod_alias?

我有一个服务器,它的 httpd.conf 已经有一些“ RedirectMatch 永久”指令。

我对 mod_alias 不是很熟悉,我只使用过 mod_rewrite。

基本的区别是什么?我在 mod_alias 中没有看到“L”标志来停止处理规则。

对于从一个子域重定向到另一个子域的最佳实践,我应该使用哪一个?

我可以同时使用两者吗?哪个优先?

0 投票
4 回答
7852 浏览

.htaccess - 如何使用 htaccess 重定向除一个子目录外的所有子目录

自从我弄乱 .htaccess 以来已经有一段时间了,我似乎无法完全正确地做到这一点。我有一个站点,例如 example.com,我希望 example.com/* 重定向到 example.com/collector.html ,但子目录 example.com/special 下的 URL除外,我想继续工作。

例如:

  • example.com/page.html 应该重定向到 example.com/collector.html
  • example.com/foo/bar 应该重定向到 example.com/collector.html
  • example.com/special/page.html 不应重定向

我本来以为像

会做的伎俩,但它似乎并没有按照我想要的方式工作。

0 投票
1 回答
778 浏览

apache - 重定向 301 转移到新域输出 URL 很丑

我正在将我的博客移动到一个新域。我正在尝试通过.htaccess 来做到这一点。虽然重定向没问题 - 输出 URL 是“丑陋的”

旧域 .htaccess 文件中的示例:

所以如果我们点击

重定向是

请建议应该做什么

谢谢阿努普

0 投票
2 回答
3606 浏览

regex - mod_alias AliasMatch Regex - 匹配文件夹中除两个模式之外的所有内容?

我想使用 AliasMatch 为文件夹中的所有内容创建别名,两个(或更多)特定的正则表达式模式除外。

例如,以下 AliasMatch 为“内容”文件夹中的所有内容创建别名:

但是有两种正则表达式模式我不希望上述别名匹配,例如:

我知道 NOT (!) 字符可以用来否定一个模式,但我不知道如何在这里使用它,或者如何在 AliasMatch 中否定多个模式。

怎么可能做到这一点?

0 投票
1 回答
4749 浏览

apache - Apache - 将 301 pdf 重定向到带空格的 pdf(二进制文件)

我想要的是:

到 301 重定向 /file_new.pdf 到 /file new.pdf (文件和新文件之间的 %20 又名空间)

我知道:

  • 我可以依靠使用 mod_rewrite 的 RewriteRule 301,使用该线程中的解决方案:@ mod_rewrite with space in the urls
  • 我可以重命名文件以不包含空格并用破折号/下划线替换它们

但是,我个人很好奇如何做到这一点。这是我到目前为止所拥有的:

当我调用 configtest 时,conf 文件解析器会引发错误:

重定向需要两个或三个参数,一个可选状态,然后是要重定向的文档和目标 URL

编辑:显然 mod_rewrite 或 Redirect 301 方法对我有用,可能是因为无论出于何种原因,它们都没有应用,因为文件实际上存在于该位置。

在 rewrite.log 中,它尝试将模式与每个相应的 uri / http 请求匹配。我认为在它到达 mod_alias/mod_rewrite 的东西之前,有些东西正在控制。

综上所述,它直接进入浏览器中的 file_new.pdf 而不是 301。我很肯定aliasrewrite已启用。我的 apache 版本是 2.2。

0 投票
1 回答
220 浏览

apache - 基于 mod_aliased 目录中文件的存在不可能 mod_rewrite?

我正在尝试在我的 .htaccess 文件中执行以下操作:

所以理论上它很简单:

  • 从以 /assets/ 开头的 url 请求图像
  • apache 检查文件是否存在
  • 如果找到,则提供文件
  • 如果不是,则改为运行脚本

这在其他地方工作正常,但这是我第一次尝试在作为别名包含的目录上使用它。据我了解,Mod Rewrite 在 Mod Alias 之前运行,这肯定会导致它不起作用(实际上我的 Alias 行在 apache conf 中,而其余行在 .htaccess 中)。

有没有办法让 Mod Rewrite 承认 Aliased 目录?

是否可以将 Alias 行改为 Rewrite 行?

0 投票
2 回答
199 浏览

regex - mod_alias 子目录替换

我正在使用 RewriteMatch 将所有流量从 subdir1 重定向到 subdir2,同时保持 url 的所有其他部分相同。例如,

将重定向到

我正在使用这个规则:

适用于网址

但不适用于任何具有较长 url 的页面。所以不匹配

应该重定向到

如果有人有任何想法,我将不胜感激。

0 投票
1 回答
609 浏览

spaces - 如何在 mod_alias 的重定向指令中使用 URL 路径中的空格?

链接文本之后,我也遇到了包含空格的文件路径的问题。有人告诉我只需用引号将完整路径括起来,这应该可以,但我一直在我的网站管理员工具错误日志中将此页面标记为未找到:

仍然给我一个404。

谢谢马丁