我有一个示例链接:
https://stackoverflow.com/test/index.php/product/01-00030am-1a1y
我要删除/ product变成
https://stackoverflow.com/test/index.php/01-00030am-1a1y
这是.htaccess
RewriteCond %{HTTP_HOST}
RewriteRule ^test/index.php/product/(.*)$ test/index.php/$2 [R=301]
但是它永远无法正常工作,如何解决
答案 0 :(得分:0)
我相信它的$1
不是$2
$2
将引用您尚未设置的第二个匹配组。试试:
RewriteCond %{HTTP_HOST}
RewriteRule ^test/index.php/product/(.*)$ /test/index.php/$1 [R=301,L]
[L]标志使mod_rewrite停止处理规则集。在大多数情况下,这意味着如果规则匹配,将不再处理其他规则。 Docs
检查here或here,以获取有关.htaccess规则的更多信息。
还请确保您拥有mod_rewrite on
,否则将无法使用。如果没有,我想您可以将其添加到您的.htaccess中
RewriteEngine On
RewriteCond %{HTTP_HOST}
RewriteRule ^test/index.php/product/(.*)$ /test/index.php/$1 [R=301,L]
或者,如果您使用的是WooCommerce,请尝试使用woo-permalink-manager插件。