.htaccess 重写htaccess旧的oscommerce链接
我正试图重写所有旧的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
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-"]+)
这应该可以很好地完成工作:
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-"]+)