.htaccess 你能重写htaccess重写规则吗?

.htaccess 你能重写htaccess重写规则吗?,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,只是想知道301重定向现有重写规则是否可行 例如,如果我的.htaccess文件中有以下行: 重写规则^bluewidgets/bluewidgets.php 然后我需要改变我的URL结构,但是URL“blue widgets/”在搜索引擎中有一个很好的排名,我不想失去它,是否可以添加另一个重写规则(301)来重定向该URL“newdirectory/blue widgets/”?如果是的话,这是如何做到的,这是在现有规则下添加新重写规则的简单情况吗 您有2次重写,页面速度变慢或有其他问题吗 试

只是想知道301重定向现有重写规则是否可行

例如,如果我的.htaccess文件中有以下行:

重写规则^bluewidgets/bluewidgets.php

然后我需要改变我的URL结构,但是URL“blue widgets/”在搜索引擎中有一个很好的排名,我不想失去它,是否可以添加另一个重写规则(301)来重定向该URL“newdirectory/blue widgets/”?如果是的话,这是如何做到的,这是在现有规则下添加新重写规则的简单情况吗

您有2次重写,页面速度变慢或有其他问题吗

试试看

RewriteRule ^blue-widgets/$ /new-directory/blue-widgets/ [L,NC,R=301]
RewriteRule ^new-directory/blue-widgets/$ bluewidgets.php [L,NC]
您有2次重写,页面速度变慢或有其他问题吗

蓝色小部件
发送到
新目录/蓝色小部件
的301将被缓存,并且每个客户端只发生一次,因此性能应受到最小影响


但是,如果可以,您还应该将站点上的此链接更改为
新目录/blue widgets

您混淆了两个完全不同的方面:内部重写和外部重写

301和302是外部重写,实际上将重定向指令传递回用户的浏览器进行重写。301告诉浏览器(和搜索引擎)地址更改是永久性的

不带[R]标志的重写规则执行内部重定向——这是Apache/IIS子系统内部的重新映射,而不是对外公开


是的,您可以在内部将多个URI重定向到同一个目标,但在编写它们时,它们将不是外部的,也不是301s。

您确定第二行是正确的吗?如果在@user1052096中有“newdirectory/”部分,第一行将重定向到新的url。第二行获取新的url并将其重写到应用程序中。两者都是必要的,将取代原来的单行线。