希望有人能看到我做错了什么,但这是故事......
我当前的站点 URL 是由电子商务软件根据产品和类别名称自动生成的,因此,如果产品/类别名称包含非字母数字字符,则会在 URL 中进行编码,这很麻烦。例如:
mysite.com/Shop/Furniture-Set-Large-Table%2C-4-Chairs.html
我正在转向一个新的电子商务解决方案,它还可以从产品名称中自动生成 URL,但它足够聪明,可以删除所有非字母数字字符。它还转换为小写,我设法找到了一个将大写重定向到小写的 htaccess 解决方案。它也没有 URL 的“商店”部分,我也设法通过 htaccess 解决了这个问题。例如:
mysite.com/furniture-set-large-table-4-chairs.html
要删除“商店”部分:
RedirectMatch 301 ^/Shop/(.*)$ http://www.mysite.com/$1
用小写替换大写以防止 404 错误:
RewriteCond %{REQUEST_URI} [A-Z]
RewriteCond %{REQUEST_FILENAME} !\.(?:png|gif|ico|swf|jpg|jpeg|js|css|php|pdf)$
RewriteRule (.*) ${lc:http://www.mysite.com/$1} [R=301,L]
这些都完美地工作。
所以我需要一个 htaccess 规则,或者可能几个,从 URL 中删除这些编码字符。我不需要替换它们,只需删除它们,因为软件将 URL 创建为“Table%2C-4-Chairs” - 所以只需要删除 %2C。
我需要从 URL 中删除某些字符编码,例如:
逗号 (%2C)、撇号 (%27)、冒号 (%3A) 等。
任何人都可以为此建议一个合适的 htaccess 规则或规则吗?
提前致谢。