Mod rewrite 使用mod#u rewrite或htaccess应用301';s到整个网站结构,带有URL';它是使用查询字符串构建的

Mod rewrite 使用mod#u rewrite或htaccess应用301';s到整个网站结构,带有URL';它是使用查询字符串构建的,mod-rewrite,http-status-code-301,Mod Rewrite,Http Status Code 301,我正在接管一个旧网站,需要更改域名 当前域为http://www.example.com/folder/ 新域名是http://example.school.nz 现有和所需URL的示例如下: 之前:http://www.example.com/folder/index.php?page=sport 渴望的:http://example.school.nz/about-us/sport 该网站是使用CMSMS构建的(http://www.cmsmadesimple.org),因此页面和URL是通

我正在接管一个旧网站,需要更改域名

当前域为http://www.example.com/folder/ 新域名是http://example.school.nz

现有和所需URL的示例如下:
之前:http://www.example.com/folder/index.php?page=sport
渴望的:http://example.school.nz/about-us/sport

该网站是使用CMSMS构建的(http://www.cmsmadesimple.org),因此页面和URL是通过CMS生成的,尽管导出URL列表很容易


理想情况下,我可以为整个站点设置301重定向,这样用户就不会得到404'd。有什么最简单的方法可以做到这一点吗?

这取决于你希望事情变得有多普遍,但这套规则可以满足你在问题中提出的要求:

RewriteCond %{HTTP_HOST} .*
RewriteCond %{QUERY_STRING} page=sport
RewriteRule ^folder/index.php http://example.school.nz/about-us/sport? [L,R=301]

这取决于你希望事情变得有多普遍,但这套规则将满足你在问题中提出的要求:

RewriteCond %{HTTP_HOST} .*
RewriteCond %{QUERY_STRING} page=sport
RewriteRule ^folder/index.php http://example.school.nz/about-us/sport? [L,R=301]

+1表示问题陈述、示例输入和输出的清晰性。+1表示问题陈述、示例输入和输出的清晰性。因此,您需要为每个URL执行此操作吗?你把它放在哪里,放在一个htaccess文件中,这个文件位于站点根目录中?这取决于是否有一个模式。但是,您通常希望避免大量的重写规则,因此您希望尽可能多地将规则塞进尽可能少的规则中。是的,您将其放在文档根目录下的.htaccess文件中。所谓模式,我的意思是,如果您想将
index.php?page=whateverisher
重定向到
about us/whateverisher
,那么这可能是一条规则。如果你有一个一般的规则,然后有一些例外,那也没关系——那也可以。你首先要注意异常,然后应用一般规则。在这种情况下,你可以考虑使用A,让自己的生活更简单。您将创建一个包含两列的纯文本文件-旧页和新页,然后使用一个重写规则来查找如何从映射文件重写。那么您是否需要为每个URL执行此操作?你把它放在哪里,放在一个htaccess文件中,这个文件位于站点根目录中?这取决于是否有一个模式。但是,您通常希望避免大量的重写规则,因此您希望尽可能多地将规则塞进尽可能少的规则中。是的,您将其放在文档根目录下的.htaccess文件中。所谓模式,我的意思是,如果您想将
index.php?page=whateverisher
重定向到
about us/whateverisher
,那么这可能是一条规则。如果你有一个一般的规则,然后有一些例外,那也没关系——那也可以。你首先要注意异常,然后应用一般规则。在这种情况下,你可以考虑使用A,让自己的生活更简单。您可以创建一个包含两列的纯文本文件—old page和new page,然后使用一个重写规则来查找如何从映射文件重写。