繁体   English   中英

RegEx和Mod_rewrite可将动态URL转换为静态URL,并将静态URL转换为动态URL

[英]RegEx and Mod_rewrite to convert dynamic to static URLs and static to dynamic URLs

我有两个需要解决的问题。

我的股票摄影网站由2005年购买的PERL脚本程序ImageFolio驱动。该程序可以按类别显示照片,也可以通过搜索关键字显示照片,然后提供与整个类别的内容匹配的缩略图页面,或者关键字或图片标题与搜索字词匹配的图片。 单击缩略图将显示动态生成的页面,该页面显示了较大的图像视图。

由于可以通过多次搜索显示相同的图像,因此重要的是,使用RegEx表达式从动态URL捕获相关的变量信息,以创建并指定链接相关性 ,从而在动态生成的页面的HEAD部分中指定规范页面。每个页面的HEAD部分中的=“ canonical”标签。 .htaccess文件中需要相应的MOD_REWRITE语句,才能将这些静态规范链接转换回结构正确的动态链接,以提供适当的内容。

一些典型的动态生成的URL和首选的静态URL替换为:

直接链接到显示该类别缩略图页面的“类别”
动态: www.artminds.com/cgi-bin/ImageFolio4/imageFolio.cgi? direct = Athletics_and_Sports
所需的静态规范: www.artminds.com/stock-photos/Athletics-and-Sports
MOD_REWRITE:与上面的动态相同

通过单击图像页面上的可点击关键字来搜索图像
动态: www.artminds.com/cgi-bin/ImageFolio4/imageFolio.cgi? img=0& search= six%20pack&cat= all& bool= phrase
所需的静态规范: www.artminds.com/photo-search/six-pack.html
MOD_REWRITE: /cgi-bin/ImageFolio4/imageFolio.cgi? search=six+pack

通过在搜索框中键入关键字来搜索图像
动态: www.artminds.com/cgi-bin/ImageFolio4/imageFolio.cgi? search= six+ pack& bool= and& cat=& x=0& y=0
所需的静态规范: www.artminds.com/six-pack.html
MOD_REWRITE: /cgi-bin/ImageFolio4/imageFolio.cgi? search=six+pack

单击缩略图显示单个图像页面
动态: www.artminds.com/cgi-bin/ImageFolio4/imageFolio.cgi? action= view& link= On_Location& image= 103_8310.jpg& img=0& search= six%20pack& cat= all& tt=& bool= and
所需的静态规范: www.artminds.com/103_8310/Muscular-young-man-posed-shirtless-with-cowboy-hat-and-blue-jeans.html
MOD_REWRITE: /cgi-bin/ImageFolio4/imageFolio.cgi? action=view&link=On_Location&image=103_8310

注意:紧随其后的DESIRED CANONICAL中的长文件名来自图像标题,该标题显示在图像显示页面的HTML标题标签中,可通过脚本程序中的变量检索,该脚本程序将图像文件中嵌入的元数据提取出来。 动态URL中的其他变量会显示被单击的缩略图显示的来源,即直接链接到类别,或基于搜索关键字,以及搜索是否限于一个类别以及搜索是否被解释为和/或/ phrase,但不需要从其他所有html页面中专门标识该图像显示页面

在上面的动态示例中,虽然可能有多个变量,但是通常只有一个相关并且需要捕获两个变量才能转换为静态URL以及在Mod_rewrite中将静态转换为动态URL,如MOD_REWRITE所示上面的例子。

任何帮助将不胜感激。

谢谢,
艺术思想
加利福尼亚帕萨迪纳

感谢@ruakh,我通过发布问题的简单版本解决了这个问题。 这是捕获以下三种形式中的任何一种形式的静态URL的一部分并将其作为参数传递给进行搜索的CGI脚本的解决方案:

http://www.artminds.com/photo-search/outdoors

http://www.artminds.com/photo-search/outdoors/

` http://www.artminds.com/photo-search/outdoors.html

RewriteRule ^photo-search\\/([^/]+?)(/|\\.html|)$ http://www.artminds.com/cgi-bin/ImageFolio4/imageFolio.cgi\\?search=$1&bool\\=all [R]

您在直接链接中使用了什么?

“直接链接到“类别”,显示该类别的缩略图页面。动态:www.artminds.com/cgi-bin/ImageFolio4/imageFolio.cgi?direct=Athletics_and_Sports所需的静态规范:www.artminds.com/stock-photos /田径运动MOD_REWRITE:与上面的动态相同”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM