1

我有这个网址:

http://www.suplementospt.com/Goldnutrition-Pack-3x-Mega-Cla-(Portes-Gratis)

我需要将其重定向到

http://www.suplementospt.com/Goldnutrition-Pack-3x-Mega-Cla

它不起作用,我认为问题出在括号上。

我的代码:

RewriteRule ^Goldnutrition-Pack-3x-Mega-Cla-(Portes-Gratis)?$ http://www.suplementospt.com/Goldnutrition-Pack-3x-Mega-Cla [R=301,L]
4

2 回答 2

4

Since .htaccess uses RegEx to match URLs and parentheses are RegEx special characters, you need to escape them:

RewriteRule ^Goldnutrition-Pack-3x-Mega-Cla-\(Portes-Gratis\)$ http://www.suplementospt.com/Goldnutrition-Pack-3x-Mega-Cla [R=301,L]

Also, don't forget to enable the rewrite engine by placing the following code at the top of your .htaccess file.

RewriteEngine on
于 2013-08-08T14:11:50.390 回答
0

你问的不是那么.htaccess具体,而是所谓的正则表达式,或者更具体的是Apache 扩展中使用的正则表达式的风格mod_rewrite

您会发现这些正则表达式在那里进行了解释,正如您所假设的那样,括号是特殊字符。

它们具有特殊含义(分组),因此不能仅“按原样”(逐字)使用,而需要转义。这是通过为具有特殊含义(如(or ))的字符添加前缀来完成的,该字符\将“字符”含义返回给它:

RewriteRule ^Goldnutrition-Pack-3x-Mega-Cla-\(Portes-Gratis\)?$ ...

我希望这个解释和链接能帮助你在你需要的重写规则中编写所有这些正则表达式。

于 2013-08-08T14:14:01.330 回答