问题标签 [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 投票
1 回答
1861 浏览

apache - Apache php httpd-xampp.conf 别名不起作用

我有 httpd-xampp.conf

在示例文件夹中我有 index.html,但是当我访问时http://localhost:8880/examples,我有错误

我的配置有错误吗?其他别名:phpmyadmin,安全性很好。

0 投票
1 回答
310 浏览

php - Apache 中的 URL 重定向问题 (mod_rewrite / mod_alias)

Stack Exchange 上有许多与 mod_rewrite 和 mod_alias 的 Apache 配置相关的问题,但我找不到我的问题的答案,所以这是另一个问题!;)

我将旧网站迁移到新位置。

文章过去可以通过 URL 访问,例如http://xxx/blog/index.php?post/YYYY/MM/DD/title,因此通过现有网页有许多这种形式的链接。

现在,该 URL 应该是http://xxx/post/YYYY/MM/DD/title,所以只需blog/index.php?从最终 URL 中删除。

我想使用 mod_alias 和一个子句,但我在这里Redirect读到该子句是在该子句之后解释的,这对我来说是个问题,因为我已经在使用一个条件。RedirectRewriteRuleRewriteRule

这是我当前的 .htaccess 文件:

我试图以这种方式修改它:

它几乎可以工作,除了:

  1. http://xxx/blog/index.php?post/YYYY/MM/DD/title被重定向/重写到http://xxx/blog/?post/YYYY/MM/DD/title(注意?)所以它不起作用
  2. 看起来这个新行搞乱了很多其他不以 /blog/index.php 开头的 URL?比如后端网址...

任何帮助都将受到欢迎!

编辑(2014-07-16):

如果我使用以下规则:

然后去 http://xxx/blog/index.php?test 带我去 http://xxx/?test 哪个几乎是正确的(问号仍然是一个问题)!

但是当我尝试通过添加来匹配询问标记时\?

然后它就停止工作了……去那里: http://xxx/blog/index.php?test 把我留在那儿!

这是为什么?

0 投票
1 回答
102 浏览

.htaccess - 使用匹配参数 .htaccess 重定向 301

我正在将网站从旧的传统 (m.) url 重定向到响应式设计 url。

这是我的 url 和 htaccess 示例。

.htaccess

但我收到 Internal Server Error (500) 。如何解决此问题。

0 投票
2 回答
1656 浏览

apache - Apache 2.4.7 永久重定向,无需重写规则

我刚刚从 2.2.x 切换到运行 2.4.7 的新服务器,现在我遇到了一些问题。我解决了迄今为止遇到的大多数问题,除了这个永久重定向问题。这是代码:

当我访问http://example.com时,它显示 /var/www/html 站点的默认 apache 页面,而不是执行重定向。我有 2 台运行 2.4.7 的服务器,它们的行为方式相同,旧服务器运行此代码正常。我尝试使用您被注释掉的 RedirectMatch,因为它也不起作用。我还注释掉了第一个重定向到 www 虚拟主机的虚拟主机,并为其添加了一个别名,只是为了让它工作,直到我将来有时间让它弄清楚,但是 ServerAlias 没有渲染该站点,它渲染了默认的 html/index.html 页面。

我很困惑,不知道从哪里开始。无数小时的谷歌搜索和搜索论坛,我没有遇到一个单一的解决方案。也许其他人已经经历过并解决了这个问题,如果是这样,请告诉我解决方案是什么。

顺便说一句,我正在寻找一个非“重写”的解决方案,我更喜欢永久重定向。

0 投票
1 回答
654 浏览

regex - RedirectMatch RegEx - 需要有一个例外

我有这个 RedirectMatch 指令:

我现在想排除 robots.txt,但继续为所有其他 .txt 发送 404。如何?

我看着RedirectMatch 403 摆弄它——需要在 .htaccess 中有 1 个 URL 的例外,但我无法让它工作。

你能帮我吗?

0 投票
0 回答
64 浏览

apache - 在 apache 2.2 中映射 docroot 之外的目录

我使用的网站结构类似于以下内容:

docroot 指向 /www 并且 /module1/www 在 docroot 之外,我必须以这种方式提供它:/module1/js

在开始时,我们有静态别名来让它工作:

但是现在,我们有很多模块(70 多个),所有这些别名都太疯狂了。为了解决这个问题,我们开发了这个 AliasMatch 规则:

它部分工作,因为 moduleX.php 作为最重要文件的路由工作,但是当我们想要不遵循这种模式的东西时,一切都会崩溃(想想 js 目录中的文件或普通文件)。而且我们无法映射所有内容,因为我们在 /www 目录中有全局 css 和 js 之类的文件。

所以,我来寻求帮助。我认为 mod_rewrite 不适合这里,因为如我所见,它仅适用于 docroot 中的文件,对吗?你将如何解决这个问题?也许在 /moduleX/www 中使用自定义 .htaccess 文件根据需要重新映射?

顺便说一句,我使用的是 apache 2.2 和 mod_alias。谢谢你。

0 投票
0 回答
3205 浏览

apache - Apache:使用 Include 指令包含在 vhost 中的文件不会评估 vhost 中定义的变量

在谷歌和这里做了很多搜索之后,我一直无法找到解决我的问题的方法。

我使用这篇文章来学习如何在我的虚拟主机中创建变量。它需要安装 mod_define。

我的团队中有许多开发人员正在从事同一个项目,并且都需要将相同的设置应用于他们的虚拟主机。修改大家的文件是相当痛苦的。所以我创建了一个名为redirects.conf的文件并将其包含在每个人的虚拟主机中。这个文件不需要知道每个虚拟主机中定义的 DEV_DIR 变量,所以它工作正常。

示例开发人员虚拟主机:

我已经包含(或尝试)的aliases.conf文件需要了解并评估 DEV_DIR 变量的值。

别名文件包含获取:

包含此文件后,当我进行配置测试时,我收到此错误:

[error] mod_define: Variable 'DEV_DIR' not defined: file /etc/httpd/conf/common/aliases.conf, line 1

但是,当我不包含该文件并将别名直接放入虚拟主机时,它会很好地评估 DEV_DIR 变量(我尝试使用两种表示法:${DEV_DIR} 以及 $DEV_DIR 并且两者都有效)。这样做仍然需要更改每个人的虚拟主机。我想使用单个文件来管理它。

我想用 VirtualHost 范围定义变量,并在包含的文件中使用它们。

如何获取 aliases.conf 或任何其他包含文件来评估包含它的 vhost 中定义的变量?

我可以使用什么其他解决方案来实现这样的功能?

如果已在其他地方提出并回答了此问题,您能否帮助我或将我链接到解决方案。

0 投票
1 回答
350 浏览

apache - Apache mod_rewrite ,后缀基于前缀的托管

我正在开发一个托管在 apache 上的网站。用户可以在 www.hostname.com/~username 以默认方式访问他们的网站空间。

我正在尝试更改为 username.hostname.com,因为它更干净一些。如果用户尝试访问旧的 www.hostname.com/~username 地址,我只想将它们重定向到新地址。不知道是用 mod_alias 还是 mod_rewrite 规则?

哪个更合适?

0 投票
2 回答
9026 浏览

regex - Apache mod_alias RedirectMatch 除特定模式外的所有内容

好的旧正则表达式让我发疯。

我需要使用从 mod_alias 重定向(不能使用 mod_rewrite)将 Apache 2.4 中的所有流量从 HTTP 重定向到 HTTPS,“/bt/sub/[a_few_endings]”除外。

我在我认识的所有在线测试人员(例如http://regex101.com/)中测试了以下正则表达式,并且都确认正则表达式确实应该匹配除了我不希望它匹配的 URL 之外的所有内容:

据我所知,这应该匹配http://local.mysite.com中的所有内容并将其重定向到https://local.mysite.com以下四个除外:

尽管如此,Apache 还是会重定向所有内容,包括我不想重定向的上述 URL。

我在 SO 中发现了几个类似的问题,但大多数问题都是根据 mod_rewrite 来回答的,这不是我想要/需要的,人们说的那些对我不起作用。

这是我目前的虚拟主机配置:

请帮助并防止我发疯:)


更新:发生了一些奇怪的事情:显然,当可以找到请求的 URL/路径时,Apache 会忽略 RedirectMatch 中的表达式并重定向客户端,即使 RedirectMatch 告诉它不要这样做。

为了测试这一点,我在一个单独的虚拟机中从头开始创建了一个新的虚拟主机,该虚拟机新安装了 Ubuntu Trussty 64,加载了 Apache 2.4。这个新的虚拟主机只包含 ServerName、RedirectMatch 和 DocumentRoot 指令,如下所示:

我创建了该目录/home/vagrant/www/bt/sub/went_active以确保 Apache 至少可以访问两个可能的 URL 之一。尝试访问http://testing.com:8080时,我按预期被重定向。

然后奇怪的是:当访问http://testing.com:8080/bt/sub/went_active与我创建的目录匹配的 URL 时,我仍然被重定向,即使我不应该这样做,但是在访问时http://testing.com:8080/bt/sub/success,我没有被重定向,而是得到一个 403 Forbidden。

我可能对此失去理智,但似乎当 Apache 看到它可以服务请求并且它匹配 RedirectMatch 中应该阻止重定向的正则表达式时,它决定忽略正则表达式并无论如何都进行重定向。三个字母:WTF?!?!?!

0 投票
0 回答
756 浏览

apache - AliasMatch 与正则表达式在 Apache 2.4 中不起作用

我曾经有如下 /CollabPortal14300 的别名,它工作正常

但是我们试图从 Alias 中删除数字并尝试使用 RegEx 代替。所以我切换到 AliasMatch 如下

切换 AliasMatch /CollabPortal\d{5}apache后无法访问资源D:/Dev/Projects/CollabPortal/CollabPortal/target/CollabPortal/

以下是访问日志

在错误日志中我看到

有人可以帮助我为什么 AliasMatch 不起作用?