问题标签 [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.
php - 设置 apache RewriteMap 以从数据库中提取的正确方法是什么?(PHP/APACHE/MYSQL)
我正在尝试在我的小型 Web 应用程序上设置干净的 URL。现在 URL 看起来像:
http://www.mysite.com/productinfo.php?product=19
我希望他们成为:
http://www.mysite.com/productinfo.php?product=鞋
我将如何编写 RewriteMap 和 PHP 脚本来提取数据库中的标题列并将其注入 URL 中以代替产品 ID 并以他们愉快的方式转发访问者?
php - 通过使用 mod_rewrite 检查当前 PHP 会话来保护图像不被直接访问
我正在解决一个问题,即用户可能会访问存储在服务器根目录之外的文件夹中的图像(在本例中为 PDF 文件)。通常,我的应用程序通过 PHP 脚本和会话验证用户。现在没有发生的是阻止未登录的用户潜在地访问 PDF。
我正在寻找的解决方案(我认为)需要与 Apache 绑定。我看到了一个使用 RewriteMap 和 RewriteRule 的有趣解决方案,但是该示例涉及将其放入 PDF 目录中的 .htaccess 文件中。Apache 无法做到这一点(错误:此处不允许使用 RewriteMap)。我相信重写指令需要进入我可以访问的 httpd.conf。
所以我找到的例子(导致'rewritemap not allowed here')在这里: RewriteEngine On RewriteMap auth prg:auth.php RewriteRule (.*) ${auth:$1}
auth.php 只检查 PHP 会话并在需要时重定向到登录脚本。
我读到我必须把它放在我的 httpd.conf 中。我将如何指定 RewriteMap 应该只出现在特定目录(包括子目录)上?
regex - IIS7重写地图正则表达式?
是否可以在重写映射中使用 reg ex?例如:
或者有没有办法处理这种方法?目前,我设置了一个规则来匹配所有内容,然后使用重写映射映射到新的 url。我想捕获目录下的所有内容,例如资源文件(等等)......而不必手动为它们执行此操作。
.htaccess - htaccess 将 param=NUMBER 重写为 /text
我试图弄清楚如何从以下内容重写 URL:example.com/collection.php?collection=1
进入:example.com/collection-name.php
我最近重新设计了一个电子商务网站,需要将旧 URL 重定向到新 URL。我已经看到了大量关于如何在重写的 URL 中使用 collection=1 的值的说明,但没有看到如何使用文本而不是值的说明。只有 5 个集合值需要重定向,但此外还有旧 URL,其中包含多个参数,也需要作为文本重写/重定向。我认为这是有道理的。
因此,我认为如果我可以设置初始重定向,我可以将它们全部解决。
其他/更复杂的旧 URL 如下所示:example.com/collection.php?collection=1&product=2&item=3
然后需要将其重定向到:example.com/collection-name/sub-collection-name/product-name.php
不知道该怎么做。我不想在 .htaccess 文件中逐行编写,但我不知道如何完成此操作。
在此先感谢,我感谢安迪和在这件事上的所有帮助!
EDIT------------------------------------ 这是我根据提供给的信息的新重写条件和规则我。这将是包含所有查询参数的 URL 使用 3 个单独的 RewriteMaps 的规则。
请让我知道是否有任何问题或我错过了什么。不确定我是否需要为每个查询参数使用 $1、$2、$3。我仍然是一个重写的 NOOB。谢谢!
编辑 - - - - - - - - - - - - - - - - - - - - - - - - - -----
在我的 .htaccess 文件中使用以下代码:
我的网址以“example.com/collection.php?collection=1”开头
正在重写为:example.com/shop/.php?collection=1
我对此有点迷茫。会不会是我的重定向地图没有被读取?或者是别的什么?谢谢您的帮助。
apache - 当添加到其他工作的 Rewrite / Rewritemap 时,RewriteLock 会在重新启动时挂起 Apache
我在一个Network Solutions VPS上,四个域名共享IP。我有一个有效的 Rewrite / RewriteMap 设置。重写位于 var/www/vhosts/example.com/conf/vhost.conf 中 example.com 网址的文件中,重写是 vhost.conf 文件中的唯一内容。它在服务器的主 httpd.conf 文件中不起作用。
RewriteMap 使用用户输入的 URL (http://example.com/bb/cc) 中的一些内容从匹配的数据库记录中获取第三条信息 (aa),将第三条信息用作加载文件的查询字符串,并在地址栏中保留最初键入的 URL,同时根据查询字符串 aa 显示文件。
这是重写:
当我在 RewriteMap 行上方或下方添加以下内容时:
并尝试重新启动 Apache,它挂起并且 Apache 不会重新启动。我尝试了不同的文件路径(认为这可能是一个权限问题,只是希望它可以正常工作),去掉最初的 /,把它放在引号中,不同的文件类型(即结尾的 .txt),不同的文件名,几乎任何东西,每次重新启动时都会挂起 Apache。Rewrite / RewriteMap 没有它就可以工作,但是我已经阅读了很多关于 RewriteLock 重要性的内容,并且 php 在以 DANGEROUS 结尾的日志中发出警告,不要使用 RewriteLock。
这是地图(位于 Rewrite 所说的位置):
我查看了主要的 httpd.conf 文件,我找不到任何关于 RewriteLock 可能会产生干扰的信息。这只是 VPS 设置中的标准配置。
如果有人知道为什么这只有在没有 RewriteLock 和可能的修复的情况下才能工作,将不胜感激。
谢谢格雷格
apache - URL 重写映射 apache
我对编程很陌生,遇到了以下问题。请给我建议。
我有一个网站,其 URL 类似于从后端数据库生成www.mysite.com/products.php?cid=3
的参数值cid
(此处为 3),并且可以是从 1 到 3 的数字。
我希望 Apache 重写 URL,以便:
www.mysite.com/nike
将重定向到www.mysite.com/products.php?cid=1
www.mysite.com/reebok
将重定向到www.mysite.com/products.php?cid=2
www.mysite.com/kswiss
将重定向到www.mysite.com/products.php?cid=3
ETC...
我在根目录下有一个名为category.txt的文本文件,内容如下:
和 .htaccess
但是,这不起作用,请告诉我,
apache - apache mod_rewritemap 虚拟主机文件
嗨,我对所有这些都很陌生。我的网站需要重写 url。我加入了godaddy linux基础。
我想使用重写地图功能。并尝试为此目的编写语法
但是我刚刚发现代码必须放在 apache 配置中的虚拟主机文件中,并且 rewriteMap 仅在您可以访问 httpd.conf 和虚拟主机时才有效。
我不知道这些。我在哪里可以找到“虚拟主机文件”和 httpd.conf?
有人可以给我明确的程序吗
谢谢
iis-7 - IIS7 和 rewriteMap 的友好 URL
我有一个包含以下条目的外部“rewritemaps.config”文件:
如何重写 URL,例如: http: //www.domain.com/wheels-and-castors/
到以下: http ://www.domain.com/category.asp?catID=2
请注意,这是重写,而不是重定向。
我想我快到了最后的重写线,但我在比赛和条件上苦苦挣扎。我当前的最终重写行是:
(其中 Cat1 是我的 rewriteMap 的名称)
谢谢你的帮助。干杯,克里斯。
mod-rewrite - mod_rewrite 301 重定向数百个旧的非结构化 url
我需要将(301)数百个旧的非结构化 url 重定向到新的。旧网址有查询字符串 domain/directories/randomtext?args=1
我有一个包含 oldurl newurl 行的文件。
我正在尝试在虚拟主机中使用 RewriteMap
是否可以在 RewriteCond 中包含查询字符串?
我这样解决了:
我认为这可以改进,因为缓存查找总是失败。我想只有 request_uri 被缓存。
重写日志
apache - 使用 RewriteMap 协助 RewriteRule
我对 mod_rewrite 相当陌生,我正在尝试让 RewriteMap 指令正常工作。感谢您在使用它时提供的帮助。
我们的网址格式如下:
所以对于第 201 节,即“Apple iPad”,URL 是:
我想要的是将其重写为:
我使用以下行在 apache config 中定义了 RewriteMap txt 文件:
此 txt 文件包含以下内容:
我在 .htaccess 中尝试了以下重写规则:
这是行不通的。我假设我的 RewriteRule 存在问题,或者我将 RewriteMap 指令放在配置文件中的错误位置。有什么建议么?
提前致谢
丹尼尔