.htaccess重写已经更改过的网址

时间:2016-02-10 22:18:40

标签: .htaccess

我正在升级我的网站,其中涉及新脚本和不同的网址 结构体。目前有几千页,所以我想 基本上将它们移动到子目录中,以便它们不会丢失。

我对htaccess不是很有信心所以请有人确认一下 我做的第一部分是正确的:

旧网址:http://www.example.com/article/another-dir/page-group/whatever.html

RewriteRule    ^article/?$    http://www.example.com/archive/    [R=301,NC,L]    

要实现这一目标:http://www.example.com/archive/another-dir/page-group/whatever.html

搜索引擎会将上述内容视为永久移动并位于地址栏中 它会显示新的网址。这是对的吗?

第二部分是新剧本 - 网址可以改进,但我是 无法改变所有脚本所以想到再次使用htaccess但是 不确定是否可以这样实现。

此时网址看起来像这样: 网址:http://www.example.com/category/4/categoryname

在htaccess中,此类网址的当前重写规则如下所示:

RewriteRule ^category/(.*)/(.*)$ category.php?id=$1&slug=$2

是否可以更改此设置,以便在URL地址栏中结束 有了这个: http://www.example.com/categoryname

基本上我不想看到结果中的数字或类别 url因为访问者更容易使用 - 这可能吗?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

第二个问题涉及传递查询字符串重定向的URI组件,然后将这些组件隐藏在URL中我认为使用RewriteRules即使可能也很容易。

对于第一个问题。根据您提到的示例URL,如果要在重定向中保留完整的URL,则RewriteRule需要包括捕获和反向引用。例如:

RewriteRule ^article/?(.*)$ http://www.example.com/archive/$1 [R=301,NC,L]
相关问题