RegEx和Mod_重写以将动态URL转换为静态URL和静态URL转换为动态URL

RegEx和Mod_重写以将动态URL转换为静态URL和静态URL转换为动态URL,regex,perl,mod-rewrite,seo,canonical-link,Regex,Perl,Mod Rewrite,Seo,Canonical Link,我有两个相互交织的问题要解决 我的股票摄影网站由一个名为ImageFolio的PERL脚本程序驱动,该程序于2005年购买。该程序允许按类别或通过搜索关键字显示照片,然后提供与整个类别内容匹配的缩略图页面,或具有与搜索词匹配的关键字或图像标题的图像。单击缩略图图像将显示动态生成的页面,其中显示图像的较大视图 由于可以从多个搜索中显示相同的图像,因此在动态生成的页面的标题部分指定规范页面非常重要,方法是使用RegEx表达式从动态URL捕获相关变量信息,创建并指定链接rel=“canonical”在

我有两个相互交织的问题要解决

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

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

一些典型的动态生成的URL和首选的静态URL替代物包括:

直接链接到显示该类别缩略图页面的“类别”
动态:www.artminds.com/cgi-bin/ImageFolio4/imageFolio.cgi?direct=田径和体育
理想静态规范:www.artminds.com/stock photos/Athletics and Sports
模块重写:与上面的动态相同

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

通过在搜索框中键入关键字来搜索图像
DYNAMIC: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\u-Location&image=103\u-8310.jpg&img=0&search=6%20pack&cat=all&tt=&bool=and
理想静态规范:www.artminds.com/103_8310/肌肉发达的年轻人赤膊上阵,头戴牛仔帽,身穿蓝色牛仔裤。html
MOD\u REWRITE:/cgi-bin/ImageFolio4/imageFolio.cgi?action=view&link=On\u-Location&image=103\u 8310

注意:上面所需规范中的长文件名来自图像标题,显示在图像显示页面的HTML标题标记中,通过脚本程序中提取图像文件中嵌入元数据的变量检索。动态URL中的其他变量显示单击的缩略图显示的来源,即直接链接到类别,或基于搜索关键字,以及搜索是否仅限于一个类别,搜索是否被解释为和/或/短语,但不需要从所有其他html页面中明确标识该图像显示页面

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

任何帮助都将不胜感激

谢谢,
艺术头脑

加利福尼亚州帕萨迪纳

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

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

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

`


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

您最终使用了什么作为直接链接

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