【发布时间】:2013-01-15 21:31:52
【问题描述】:
我有一个由其他人托管的网站,所有网页都是 .html 文件。我现在托管该站点并将其更改为 wordpress 站点。域没有改变,但显然所有页面都有。将所有 .html 页面重定向到主 url 的最佳方法是什么?
【问题讨论】:
标签: .htaccess redirect rewrite
我有一个由其他人托管的网站,所有网页都是 .html 文件。我现在托管该站点并将其更改为 wordpress 站点。域没有改变,但显然所有页面都有。将所有 .html 页面重定向到主 url 的最佳方法是什么?
【问题讨论】:
标签: .htaccess redirect rewrite
.htaccess 中的301 Redirect 不需要 mod_rewrite 库。这是一种更简单的重定向方式,但它不具备使用重写规则所获得的灵活性和强大功能。如果您有一个带有显式 url 的 1-1 映射,您可以使用重定向:
Redirect 301 /path/file.html http://new.site.com/newpath.php
如果您尝试使用正则表达式对多个相似模式进行通配符匹配,则需要使用 Rewrite。
RewriteRule ^(.*).html$ http://new.site.com/$1.php [R=301,NC,L]
以下是这 2 种方法的一个很好的概述:http://www.ksl-consulting.co.uk/301-redirect-examples.html
【讨论】:
RewriteCond %{HTTP_HOST} ^foo.com[nc]RewriteRule ^(.*)$ http://www.foo.com/$1 [r=301,nc]
还有 RedirectMatch 也使用正则表达式对相似模式进行通配符匹配。选择取决于您需要做什么。
重写是复杂的 - 学习曲线 - 但您可以提供替代网址,而无需提供 HTML 代码和看起来不可能的东西。但强大的功能带来了复杂性和大量错误。
如果你只是做一个简单的重定向 - 可能匹配一些 url - 重定向是要走的路。
当您无法使用 Redirect 时,您可能想开始学习 Mod_Rewrite。
【讨论】: