问题标签 [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 回答
592 浏览

.htaccess - .htaccess 301 使用 RedirecMatch 或 RewriteRule 重定向

我正在尝试使用 .htaccess 创建一些 301 重定向,以修复 Google 遇到的一些爬虫错误。Google 正在使用我的一些 URL 的旧版本,这会导致蜘蛛尝试访问旧路径时出现错误。这些旧版 URL 包含空格,其中有很多,都出现在 URL 字符串中的不同位置。例如,一个 URL 可能看起来像这样:

这些 URL 不必要地长,特别是因为它们最终都显示相同的内容。它们现在已缩短为如下所示:

实际上有超过 1,000 个,尽管 URL 末尾只有 6 个排列,所以我想我可以使用 RedirectMatch 或 RewriteRule 轻松匹配这 6 个排列中的一个是否存在并重定向到适当的新 URL。我尝试了以下方法:

也:

这些都不起作用。我尝试了许多不同的选项,包括使用 \ 而不是正则表达式字符类转义空格,将正则表达式的开头更改为 ^.*/?773 以及许多其他方法,但没有任何效果。

我在http://www.regular-expressions.info/javascriptexample.html使用了正则表达式测试功能,它报告我的正则表达式有效并生成与我期望的 URL 匹配,但 .htaccess 没有重定向正如我所料。

我可以使用简单的重定向,如下所示:

这可行,但有问题,因为它仅在存在 car-kits-halogen-aircon-oil 时匹配,并且该 URI 段可能有 200 个排列,这将使手动输入每个可能的排列成为一项艰巨的任务。

有什么建议么?我想要做的甚至可能吗?

0 投票
1 回答
6975 浏览

.htaccess - 在 .htaccess 中同时使用 mod_rewrite 和 mod_alias(重定向 301)?

我有一个站点,其中包含一组已放入 CMS 的旧 .html 和 .php 页面。

目前在 .htaccess 文件中大约有 30 个 mod_alias 重定向,格式如下:

但是我们想使用 mod_rewrite 在我们的 CMS 中拥有漂亮的 URL,它将采用 形式http://www.example.com/pagename.php,所以也有以下内容:

目前两者都被一起应用,结果是:

仅当 mod_alias 重定向 301 语句未进行匹配时,如何应用重写规则,以便发生以下情况:

http://www.example.com/oldpage1.html-> 重定向到 -> http://www.example.com/newpage1.php-> 被视为 -> http://www.example.com/index.php?page=/newpage1.php

任何提示将不胜感激?谢谢。

0 投票
1 回答
817 浏览

.htaccess - 仅使用 mod_alias 通过 .htaccess 将目录的 http 重定向到 https

我有一个常见问题是希望将某个受限访问目录的请求从 http 重定向到 https,以便以安全的方式发送用户的登录凭据。

但是,我的服务器上没有启用 mod_rewrite。我只有 mod_alias。这意味着我必须使用 RedirectMatch 命令。我不能使用使用 RewriteCond 和 RewriteRule 的常用解决方案。

(关于政治的注意事项:我是一个非常大的组织中的一个小型子站点维护者,所以服务器管理员不太可能愿意为我更改服务器配置!)

以下行有效,但形成了一个无限循环(因为重写的 URL 仍被初始正则表达式捕获):

我的一位内部 IT 人员建议我通过将文件移动到具有新名称的新目录(例如 /intranet2/)来避免无限循环。这对我来说似乎很丑陋。人们仍然可以通过直接访问http://example.com/intranet2/意外/故意恢复到不安全的连接。

然后我尝试了这个,但它没有用:

我怀疑它不起作用,因为第一个参数必须是根目录的文件路径,所以它不能以“http:”开头。

所以:任何更好的想法如何做到这一点?

0 投票
2 回答
265 浏览

regex - mod_alias 重定向提示

全部。我搜索网站但找不到我的答案,所以我发布它。

我想像这样重定向网址

example.com/css/.... ====> example.com/templates/css/...

example.com/path/css/.... ====> example.com/path/templates/css/...

我经常累,不是我希望的。如

我认为最后一个常规可能是正确的。但需要将常规设置为惰性模式。我找到了关于 mod_alias 和 mod_rewrite 的 apache 文档,还没有找到关于这个提示的讨论。

需要帮忙。谢谢 !

0 投票
1 回答
345 浏览

php - mod_rewrite 与 Alias 指令冲突

我的主要网站使用 PHP/Zend 框架,.htaccess 是常见的:

现在我需要将一个论坛(在另一个目录中)带到主站点。我在 VirtualHost 中添加了 Alias 指令

论坛软件使用自己的.htaccess。主 URL /forums 是可访问的,但不是其他的。其他 URL(那些没有相应文件的 URL)被转发到主站点。换句话说,主站点 (/) 的 .htaccess 文件被选中,而不是 /forums 目录下的那个。

0 投票
2 回答
775 浏览

apache - Apache 重定向问题 - mod_rewrite 或 mod_alias

我有一个特定的需求:

example.com/store/{location} 必须重定向到 example.com/store2/{location}

这需要重定向,而不仅仅是一个 url 'rewrite',所以我猜我需要 mod_alias,对吧?有人愿意分享正确的代码吗?我对 mod_rewrite 和 mod_alias 都有些模糊。(我希望我问的正确)谢谢!

0 投票
1 回答
1367 浏览

apache - mod_alias 重写不起作用?

我有两台服务器:

Fedora 运行 Apache/2.2.14(旧服务器)
CentOs 运行 Apache/2.2.3(新服务器)

我一直在使用这个重写规则很长一段时间,在旧服务器上取得了绝对成功:

但是在新服务器上,这条消息惨遭失败[alert] [client 192.168.0.5] /home/yoursite/www/.htaccess: Redirect to non-URL

检查文档...我发现旧服务器应该按原样接受规则,而新服务器应该接受它。他们都在运行一个完全相同的httpd.conf文件。

我了解如何解决此问题(只需重定向到带有 http://... 的页面)第一位)并且在新服务器上不起作用(实际上它应该在哪里工作)。

有没有人经历过类似的?

0 投票
1 回答
2975 浏览

mod-rewrite - 如何重定向带有参数的url?

试图将 mod_rewrite 集成到我现有的页面中时,我完全不知所措。目前,我正在从头开始构建一个新网站,并且我有一些不错的干净网址,例如:

运行 Cms 的旧站点变得简单,有一些未重写的 url,需要重定向到新页面。这些网址看起来像这样:

但更短的版本,如:

也工作。

我花了一段时间才弄清楚带参数的 url 不能像我通常做的那样简单地用“重定向 301”重定向。所以我尝试了一些在线 mod_rewrite 生成器,例如thisthis,但这些规则输出的规则只会导致 404 错误,(重定向根本不起作用)。

我的 .htaccess 文件当前如下所示:

旧页面将抓住存在。如何将旧页面重定向到新页面?

谢谢。

编辑

似乎可以解决问题。这当然是每个 url 的手册,但我只有几个。

0 投票
1 回答
819 浏览

apache - URL 中的通配符(mod_alias 或 mod_rewrite)

我需要有 URL,例如mydomain.com/whatever,其中“whatever”可以是任意字符串,都调用同一个 php 文件,在其中整理出要显示的内容(或显示 404)。但是,我希望文件和其他 php 文件能够正常工作(任何其他别名或文件系统中实际存在的文件)。

一个简单AliasMatch /* myphpfile.php的(在 httpd.conf 中的所有其他别名之后)在我自己的设置上工作正常,但在生产服务器上,通配符别名将所有其他 php 文件发送到myphpfile.php. 我不确定还有什么可能令人困惑的事情。

从技术上讲,whatever字符串将是字母和小写,因此它可以过滤,但我用正则表达式所做的所有尝试都没有成功。

0 投票
1 回答
9609 浏览

apache - Apache ErrorDocument 绝对路径

我正在尝试对域及其所有子域使用相同的 404 ErrorDocument,子域在 /var/www/ 路径中都有自己的目录

Apache ErrorDocument 指令需要一个相对路径(相对于当前目录),但我希望它从所有目录/子域转到 /var/www/ErrorPages/404.html

在 2010 年问了一个类似的问题但它没有详细说明解决方案,我尝试了 Alias,但无法让它做我想做的事。

示例 1:http://example.com/doesnotexist.txt请求的文件

-> 显示/var/www/mervin/ErrorDocuments/404.html为响应

示例 2:http://subdomain.example.com/otherimaginaryfile.txt请求的文件

-> 显示/var/www/ErrorPages/404.html为响应

虚拟主机:

我该怎么做呢?

其他信息:Apache2.2,MOD_ALIAS 工作,MOD_REWRITE 工作,启用符号链接