Apache htaccess 301重定向到新的文件名模式?

Apache htaccess 301重定向到新的文件名模式?,apache,.htaccess,url,redirect,Apache,.htaccess,Url,Redirect,我提出了一段代码,可以将现有的文件名模式转换为新的文件名模式: RewriteEngine On RewriteRule (.*)-pi-(.*)\.html$ $1-p-$2 [NE,R] 在我在服务器上乱搞之前,你会提供一些建议或更好的解决方案吗 我希望将查找包含“-pi-”的url的文件重定向到“-p-” 来自http://www.p.com/great-product-pi-37.html 至- http://www.p.com/great-product-p-37.html 每个产品

我提出了一段代码,可以将现有的文件名模式转换为新的文件名模式:

RewriteEngine On
RewriteRule (.*)-pi-(.*)\.html$ $1-p-$2 [NE,R]
在我在服务器上乱搞之前,你会提供一些建议或更好的解决方案吗

我希望将查找包含“-pi-”的url的文件重定向到“-p-”

来自http://www.p.com/great-product-pi-37.html - http://www.p.com/great-product-p-37.html

每个产品的产品名称(很棒的产品)和产品id(37)都会发生变化,但格式保持不变

-pi-reference过去是生成图像的弹出窗口。图像现在显示在同一个-p-屏幕上,但搜索引擎一直在索引和搜索旧的-pi-图像窗口


提前谢谢。

这需要一些小的调整,但是你也需要使用
301
重定向。如果只使用
[R]
而不指定
301
,则默认为
302
。你不想要临时的。你想要永久的。我会把这个放在你可能重写过的其他东西之上

RewriteEngine On
RewriteRule ^(.+)-pi-(.+)\.html$ /$1-p-$2.html [R=301,L]

谢谢你提供的信息,@PanamaJack。今天我要测试一下。效果很好!我还在输出中添加“?”以删除其他查询信息。看起来是这样的:RewriteRule^(+)-pi-(++)\.html$/$1-p-$2.html?[R=301,L]为什么用“+”而不是“*”?超级解释!大多数在线示例似乎都使用*,但对于大多数情况,使用+,显然更有意义。