问题标签 [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.
apache - Apache php httpd-xampp.conf 别名不起作用
我有 httpd-xampp.conf
在示例文件夹中我有 index.html,但是当我访问时http://localhost:8880/examples
,我有错误
我的配置有错误吗?其他别名:phpmyadmin,安全性很好。
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
读到该子句是在该子句之后解释的,这对我来说是个问题,因为我已经在使用一个条件。Redirect
RewriteRule
RewriteRule
这是我当前的 .htaccess 文件:
我试图以这种方式修改它:
它几乎可以工作,除了:
http://xxx/blog/index.php?post/YYYY/MM/DD/title
被重定向/重写到http://xxx/blog/?post/YYYY/MM/DD/title
(注意?
)所以它不起作用- 看起来这个新行搞乱了很多其他不以 /blog/index.php 开头的 URL?比如后端网址...
任何帮助都将受到欢迎!
编辑(2014-07-16):
如果我使用以下规则:
然后去
http://xxx/blog/index.php?test
带我去
http://xxx/?test
哪个几乎是正确的(问号仍然是一个问题)!
但是当我尝试通过添加来匹配询问标记时\?
:
然后它就停止工作了……去那里:
http://xxx/blog/index.php?test
把我留在那儿!
这是为什么?
.htaccess - 使用匹配参数 .htaccess 重定向 301
我正在将网站从旧的传统 (m.) url 重定向到响应式设计 url。
这是我的 url 和 htaccess 示例。
.htaccess
但我收到 Internal Server Error (500) 。如何解决此问题。
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 页面。
我很困惑,不知道从哪里开始。无数小时的谷歌搜索和搜索论坛,我没有遇到一个单一的解决方案。也许其他人已经经历过并解决了这个问题,如果是这样,请告诉我解决方案是什么。
顺便说一句,我正在寻找一个非“重写”的解决方案,我更喜欢永久重定向。
regex - RedirectMatch RegEx - 需要有一个例外
我有这个 RedirectMatch 指令:
我现在想排除 robots.txt,但继续为所有其他 .txt 发送 404。如何?
我看着RedirectMatch 403 摆弄它——需要在 .htaccess 中有 1 个 URL 的例外,但我无法让它工作。
你能帮我吗?
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。谢谢你。
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 中定义的变量?
我可以使用什么其他解决方案来实现这样的功能?
如果已在其他地方提出并回答了此问题,您能否帮助我或将我链接到解决方案。
apache - Apache mod_rewrite ,后缀基于前缀的托管
我正在开发一个托管在 apache 上的网站。用户可以在 www.hostname.com/~username 以默认方式访问他们的网站空间。
我正在尝试更改为 username.hostname.com,因为它更干净一些。如果用户尝试访问旧的 www.hostname.com/~username 地址,我只想将它们重定向到新地址。不知道是用 mod_alias 还是 mod_rewrite 规则?
哪个更合适?
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,但以下四个除外:
- http://local.mysite.com/bt/sub/went_active
- http://local.mysite.com/bt/sub/success
- http://local.mysite.com/bt/sub/cancel
- http://local.mysite.com/bt/sub/expired
尽管如此,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?!?!?!
apache - AliasMatch 与正则表达式在 Apache 2.4 中不起作用
我曾经有如下 /CollabPortal14300 的别名,它工作正常
但是我们试图从 Alias 中删除数字并尝试使用 RegEx 代替。所以我切换到 AliasMatch 如下
切换 AliasMatch /CollabPortal\d{5}
apache后无法访问资源D:/Dev/Projects/CollabPortal/CollabPortal/target/CollabPortal/
以下是访问日志
在错误日志中我看到
有人可以帮助我为什么 AliasMatch 不起作用?