问题标签 [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.
.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 个排列,这将使手动输入每个可能的排列成为一项艰巨的任务。
有什么建议么?我想要做的甚至可能吗?
.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
任何提示将不胜感激?谢谢。
.htaccess - 仅使用 mod_alias 通过 .htaccess 将目录的 http 重定向到 https
我有一个常见问题是希望将某个受限访问目录的请求从 http 重定向到 https,以便以安全的方式发送用户的登录凭据。
但是,我的服务器上没有启用 mod_rewrite。我只有 mod_alias。这意味着我必须使用 RedirectMatch 命令。我不能使用使用 RewriteCond 和 RewriteRule 的常用解决方案。
(关于政治的注意事项:我是一个非常大的组织中的一个小型子站点维护者,所以服务器管理员不太可能愿意为我更改服务器配置!)
以下行有效,但形成了一个无限循环(因为重写的 URL 仍被初始正则表达式捕获):
我的一位内部 IT 人员建议我通过将文件移动到具有新名称的新目录(例如 /intranet2/)来避免无限循环。这对我来说似乎很丑陋。人们仍然可以通过直接访问http://example.com/intranet2/意外/故意恢复到不安全的连接。
然后我尝试了这个,但它没有用:
我怀疑它不起作用,因为第一个参数必须是根目录的文件路径,所以它不能以“http:”开头。
所以:任何更好的想法如何做到这一点?
regex - mod_alias 重定向提示
全部。我搜索网站但找不到我的答案,所以我发布它。
我想像这样重定向网址
example.com/css/.... ====> example.com/templates/css/...
example.com/path/css/.... ====> example.com/path/templates/css/...
我经常累,不是我希望的。如
我认为最后一个常规可能是正确的。但需要将常规设置为惰性模式。我找到了关于 mod_alias 和 mod_rewrite 的 apache 文档,还没有找到关于这个提示的讨论。
需要帮忙。谢谢 !
php - mod_rewrite 与 Alias 指令冲突
我的主要网站使用 PHP/Zend 框架,.htaccess 是常见的:
现在我需要将一个论坛(在另一个目录中)带到主站点。我在 VirtualHost 中添加了 Alias 指令
论坛软件使用自己的.htaccess。主 URL /forums 是可访问的,但不是其他的。其他 URL(那些没有相应文件的 URL)被转发到主站点。换句话说,主站点 (/) 的 .htaccess 文件被选中,而不是 /forums 目录下的那个。
apache - Apache 重定向问题 - mod_rewrite 或 mod_alias
我有一个特定的需求:
example.com/store/{location} 必须重定向到 example.com/store2/{location}
这需要重定向,而不仅仅是一个 url 'rewrite',所以我猜我需要 mod_alias,对吧?有人愿意分享正确的代码吗?我对 mod_rewrite 和 mod_alias 都有些模糊。(我希望我问的正确)谢谢!
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://... 的页面)第一位)并且在新服务器上不起作用(实际上它应该在哪里工作)。
有没有人经历过类似的?
mod-rewrite - 如何重定向带有参数的url?
试图将 mod_rewrite 集成到我现有的页面中时,我完全不知所措。目前,我正在从头开始构建一个新网站,并且我有一些不错的干净网址,例如:
运行 Cms 的旧站点变得简单,有一些未重写的 url,需要重定向到新页面。这些网址看起来像这样:
但更短的版本,如:
也工作。
我花了一段时间才弄清楚带参数的 url 不能像我通常做的那样简单地用“重定向 301”重定向。所以我尝试了一些在线 mod_rewrite 生成器,例如this和this,但这些规则输出的规则只会导致 404 错误,(重定向根本不起作用)。
我的 .htaccess 文件当前如下所示:
旧页面将抓住存在。如何将旧页面重定向到新页面?
谢谢。
编辑
似乎可以解决问题。这当然是每个 url 的手册,但我只有几个。
apache - URL 中的通配符(mod_alias 或 mod_rewrite)
我需要有 URL,例如mydomain.com/whatever
,其中“whatever”可以是任意字符串,都调用同一个 php 文件,在其中整理出要显示的内容(或显示 404)。但是,我希望文件和其他 php 文件能够正常工作(任何其他别名或文件系统中实际存在的文件)。
一个简单AliasMatch /* myphpfile.php
的(在 httpd.conf 中的所有其他别名之后)在我自己的设置上工作正常,但在生产服务器上,通配符别名将所有其他 php 文件发送到myphpfile.php
. 我不确定还有什么可能令人困惑的事情。
从技术上讲,whatever
字符串将是字母和小写,因此它可以过滤,但我用正则表达式所做的所有尝试都没有成功。
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 工作,启用符号链接