我记得redirectmatch无法处理问号,但我该如何匹配此网址:
http://www.mysite.com/es/?lang=es&url=index.php&option=com_virtuemart&page=shop.browse&category_id=42&product_type_id=1&product_type_1etcetcetc`
在存在文件夹名称时从index.php之前删除lang=es&url=
?
如果我在使用?lang=es&url=
查询字符串时从URL中删除/ es /文件夹,或者我可以在文件夹中从URL中删除查询字符串?lang=es&url=
,我的问题就会解决是/ es /
大约有11种语言,国家代码为fr,de等,其中一种奇怪的是zh-CN。这刚刚超过了我的能力。感谢您花时间阅读本文,我们将非常感谢您的帮助。
编辑:现在主要工作。我只是在zh-CN语言中遇到一个小问题,因为它似乎与其他en,fr,de等语言不同,这些语言正在做我想要的,即使双击另一种语言也会保留英语。但是,zh-CN语言会使用http://www.seed-city.com/?lang=zh-CN&url=index.php&zh-CN 重定向到主页我目前在我的htaccess文件中有这个:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/../
RewriteCond %{QUERY_STRING} lang=..&url=index.php&(.*)
RewriteRule ^(.*)$ /$1index.php?%1 [R=301,L]
RewriteCond %{REQUEST_URI} ^/(zh-CN|zh-TW)/ [NC]
RewriteCond %{QUERY_STRING} lang=([a-z]{2}|zh-CN|zh-TW)&url=index.php&(.*) [NC]
RewriteRule ^(.*)$ /$1index.php?%1 [R=301,L]
我还有更多,但这是相关的部分。谢谢你的时间。 Natastna2。
答案 0 :(得分:0)
如果我理解了您的要求,这将适用于.htaccess文件:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/es/
RewriteCond %{QUERY_STRING} lang=es&url=index.php&(.*)
RewriteRule ^(.*)$ /$1index.php?%1 [R=301,L]
使用上面的角色,这样的网址为:http://www.mysite.com/es/?lang=es&url=index.php&option=com_virtuemart&page=shop.browse&category_id=42&product_type_id=1&product_type_1etc
将被重定向到:
http://www.mysite.com/es/index.php?option=com_virtuemart&page=shop.browse&category_id=42&product_type_id=1&product_type_1etc
根据您编辑的部分,这里是现在应该有效的重写规则:
RewriteCond %{REQUEST_URI} ^/../
RewriteCond %{QUERY_STRING} lang=..&url=index.php&(.*)
RewriteRule ^(.*)$ /$1index.php?%1 [R=301,L]
RewriteCond %{REQUEST_URI} ^/(zh-CN|zh-TW)/
RewriteCond %{QUERY_STRING} lang=(zh-CN|zh-TW)&url=index.php&(.*)
RewriteRule ^(.*)$ /$1index.php?%2 [R=301,L]