Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 重写htaccess旧的oscommerce链接_.htaccess_Rewrite - Fatal编程技术网

.htaccess 重写htaccess旧的oscommerce链接

.htaccess 重写htaccess旧的oscommerce链接,.htaccess,rewrite,.htaccess,Rewrite,我正试图重写所有旧的oscommerce链接到一个新网站。但我有麻烦的一部分网址,我需要重写 链接如下所示: http://www.domain.com/product_info.php?cPath=3_72&products_id=129&osCsid=6j3iabkldjcmgi3s1344lk1285 此重写适用于上述链接: RewriteCond %{REQUEST_URI} ^/product_info\.php$ RewriteCond %{QUERY_STRIN

我正试图重写所有旧的oscommerce链接到一个新网站。但我有麻烦的一部分网址,我需要重写

链接如下所示:

http://www.domain.com/product_info.php?cPath=3_72&products_id=129&osCsid=6j3iabkldjcmgi3s1344lk1285
此重写适用于上述链接:

RewriteCond %{REQUEST_URI}  ^/product_info\.php$
RewriteCond %{QUERY_STRING} ^cPath=3_72&products_id=129&osCsid=([A-Za-z0-9-_]+)$
RewriteRule ^(.*)$ http://www.domain.com/apple/air.html? [R=301,L]
但不适用于:

http://www.domain.com/product_info.php?cPath=3_72&products_id=129

我的问题是,无论是否包含
&osCsid=6j3iabakldjcmgi3s1344lk1285
部分,我都希望重写工作正常

我认为可以通过不指定结束分隔符($)来实现这一点

尝试一下:

RewriteCond %{REQUEST_URI}  ^/product_info\.php$
RewriteCond %{QUERY_STRING} ^cPath=3_72&products_id=129
RewriteRule ^(.*)$ http://www.domain.com/apple/air.html? [R=301,L]
通过不将$放在正则表达式字符串的末尾,您基本上是在说:匹配以…开头的任何字符串,不管后面是什么


希望这有帮助:)

我认为不指定结束分隔符($)可以实现这一点

尝试一下:

RewriteCond %{REQUEST_URI}  ^/product_info\.php$
RewriteCond %{QUERY_STRING} ^cPath=3_72&products_id=129
RewriteRule ^(.*)$ http://www.domain.com/apple/air.html? [R=301,L]
通过不将$放在正则表达式字符串的末尾,您基本上是在说:匹配以…开头的任何字符串,不管后面是什么


希望这有帮助:)

这应该可以很好地完成工作:

RewriteCond %{QUERY_STRING} ^cPath=3_72&products_id=129
RewriteRule ^product_info\.php$ http://www.domain.com/apple/air.html? [R=301,L]
  • 不需要单独的条件
    RewriteCond%{REQUEST\u URI}^/product\u info\.php$
    --可以(实际上,为了更好的性能,应该)将此部分移动到RewriteRule

  • 这就足够了,
    ^cPath=3\u 72&products\u id=129
    ——它告诉我们“当查询字符串以…”开头时”。无需包括可选/非重要参数
    osCsid=([A-Za-z0-9-"]+)

  • 此规则将放置在网站根文件夹中的.htaccess文件中。如果放在其他地方,可能需要一些小的调整


  • 这应该可以很好地完成工作:

    RewriteCond %{QUERY_STRING} ^cPath=3_72&products_id=129
    RewriteRule ^product_info\.php$ http://www.domain.com/apple/air.html? [R=301,L]
    
  • 不需要单独的条件
    RewriteCond%{REQUEST\u URI}^/product\u info\.php$
    --可以(实际上,为了更好的性能,应该)将此部分移动到RewriteRule

  • 这就足够了,
    ^cPath=3\u 72&products\u id=129
    ——它告诉我们“当查询字符串以…”开头时”。无需包括可选/非重要参数
    osCsid=([A-Za-z0-9-"]+)

  • 此规则将放置在网站根文件夹中的.htaccess文件中。如果放在其他地方,可能需要一些小的调整