问题标签 [rewritemap]
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 mod_rewrite 和 RewriteMap 的使用
第一次使用 rewriteMap 进行 URL 重写。我上面有一个代码,但如果我http://example.com/mysite/mods/abc.html
在浏览器中运行,它会返回一个 404 页面。我已经将上面的代码放在我的虚拟主机文件中的 apache 配置中,我在一些论坛中读到 rewriteMap 仅在您有权访问httpd.conf和虚拟主机时才有效。mod_rewrite 正在我的 Windows 机器上运行,因为我能够运行在我的 .htaccess 文件中定义的一些规则。
map.txt包含_
apache - Apache RewriteRule 与 RewriteMap
我有一个RewriteMap
看起来像这样的:
我将它包含在Apache
via
我想创建一个RewriteRule
只允许左侧的值RewriteMap
在这个位置;
我知道我可以${legacy}
在右侧使用,但我可以在左侧使用它,如果可以,如何使用?
.htaccess - mod_rewrite 将所有不匹配的内容发送到 rewritemap
我有一个以常规内容开头的 htaccess 文件:
然后有一些重写,例如:
然后以重写映射结束:
rewritemap 包含我们所有的旧 url - 我们当前站点上的页面和将被重定向到新站点上的等效页面的短 url(大约有 4k,所以我真的需要使用地图):
问题是,启用 rewritemap(即未注释掉)后,我所有的 url(即使是那些不匹配的)都重定向到 / - 包括样式表、js、图像等。
我所追求的是与地图中的模式匹配以重定向到替换和其他所有内容的uris(即保持不变)。
我尝试在地图上设置默认值 $1:
但这只会导致重定向循环。我想我也可以跳过所有 .css、.js、.jpg 等的重写,但宁愿不必维护已用文件扩展名的列表。
仅供参考,我使用的是 HeliconTech 的 ISAPIRewrite(因为我在 IIS 6 上),尽管它声称可以按照 apache 处理重写映射,而且我们过去从未遇到过问题。
任何帮助将不胜感激!
谢谢,亚当
apache - 重写映射不匹配
我的重写映射不匹配有问题:
该地图有大约 4,500 个条目,包括:
我的 RewriteLog,设置为 9 级,记录:
它适用于不在地图中的页面 - 例如 /Contact-Us.aspx,但不适用于应该匹配的内容(例如北极)。我尝试更改 [NC] 标志的位置,删除 RewriteCond 并重命名地图文件(以防“地图”是保留关键字)。没有喜悦。这似乎也不是权限问题。
仅供参考,我正在使用 Helicontech 的 ISAPIRewrite,因为我在 IIS6 上。
php - Mod_ReWrite / ReWriteMap 使用数据库查找脚本的 URL
场景
我已经将一个旧的现有 ASP 经典电子商务网站完全改写为 PHP。
之前网站的数据库设计有很多关系 ID 问题,导致产品数据行与数据库中其他表的链接很麻烦。
为了解决这个问题,我还重新设计了数据库,为产品提供了新的主键,同时仍然在表中保留了一个包含产品旧 PK 的列。
问题
我遇到的问题是当网站重新启动时,我需要所有指向“Product.asp?ProductID=29”的搜索引擎链接来查找数据库,匹配产品旧PK,并重定向到产品新的 PK 即“Products.php?ID=53”。
我希望使用 Mod_ReWrite/ReWriteMap 来执行此操作,但是,我可以在网上找到的所有文档都没有说明如何处理数据库脚本 PK 查找。
更新我已经在http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritemap
> External Rewriting Program
中进一步阅读了 Ignacio Vazquez-Abrams 的建议,这似乎是正确和理想的解决方案。
但是,在联系我的主机后,他们没有在他们的服务器上启用。ReWriteMap
我已经提供了我自己的,但绝不是在没有ReWriteMap
启用的情况下实现这一目标的最佳/正确解决方案。
php - mod_rewrite 使用 Rewritemap prg 指令导致 apache 崩溃
阿帕奇配置:
我修复了设置文件可执行文件的明显问题,但现在它给出了这个:
[Fri Feb 12 01:55:31 2010] [error] (2)No such file or directory: exec of '/var/www/lib/allow.php' failed
但该文件显然存在。
.htaccess - RewriteMap 在 mod-rewrite 中不起作用
我一直在尝试在我的 htaccess 中使用 RewriteMap 指令进行简单的映射,但由于某种原因,我每次都收到错误 500。我的语法是 .. 选项 +FollowSymLinks
在 nklist.txt :
nklist.txt 文件位于我网站的根目录,与 htaccess 相同的位置。据我的调试告诉我,htaccess 无法找到 nklist.txt 文件,但任何帮助将不胜感激。
.htaccess - 通过 htaccess 或 httpd.conf 进行基本的静态到静态重写(或重定向)
我们正在从一种站点语言/CMS(coldfusion/custom)转移到另一种(PHP/Drupal),并且需要将我们的一些旧页面重定向到新页面。我可以访问 .htaccess 和 httpd.conf(和 apache2.conf),因为这是 Linode 上的 vps。
它们中的大多数不能通过正则表达式完成(它们在 URL 中包含 GUID),我们可以编写静态重定向。
这是一个例子:
就是这样...我已经尝试了以^开头的语法,以美元符号结尾,但似乎都不起作用。
我可能对 RewriteCond 所扮演的角色有误解——.htaccess 中已经有其他行。
指定 RewriteRule 后是否需要重新声明 RewriteCond?
另外——理想情况下,为了保持 .htaccess 中的清洁度,我想使用 RewriteMap,我可以在其中指定一个文本文件,并且只有两个制表符分隔的“旧 url | 新 url”列......但我可以也不能让它工作(如果它甚至适合使用)。
任何想法都会受到欢迎......
php - Apache mod_rewrite:在 Windows 机器上使用 PHP 脚本的 RewriteMap 指令
这一直让我发疯。我似乎无法让 RewriteMap 指令适用于 Windows 上的 php 脚本。这是我的 httpd.conf 文件中的相关片段:
我的简单 php 脚本如下所示:
当我尝试启动 Apache 时,我的错误日志中出现以下行:
[错误] (OS 193)%1 不是有效的 Win32 应用程序。: mod_rewrite: 无法启动 RewriteMap 程序 C:/dev/web/www/routing.php 配置失败
apache 文档引用了“magic cookie 技巧”(在“外部重写程序”标题下),它应该是指向解释器的脚本的第一行。这是我出错的地方还是我需要以不同的方式调用 RewriteMap 指令?
apache - 在 htaccess 文件中使用 RewriteMap
如何在 htaccess 文件中使用 RewriteMap 指令?当我把它放在那里时,出现“此处不允许 RewriteMap”错误。
我知道当把它放在 httpd.conf 或 virtualhost 配置文件中时这个错误会消失。但我想知道是否可以将其放入 htaccess 中?