重定向文件夹和部分文件名

时间:2014-06-18 17:11:37

标签: .htaccess redirect rewrite

我已将PHP文件的整个文件夹更改为一个名称更友好的新文件夹以及83个文件。大多数传入的URI都有命名锚点'#'。

我需要将旧文件夹/文件名的链接(包括命名锚点)重定向到文件夹/文件名,保留更改部分后面的URI的任何部分。

我可以使用单独的Redirect行来创建单个文件,但想知道是否有某种方法可以全局执行。

变化: mysite.com/folder1/filename1-(其他东西,包括命名锚点)

于: mysite.com/folder2/filename2-(其他东西,包括命名锚点)

我花了几个小时查看档案,并在线搜索重写和重定向,但没有解决重定向部分文件名的问题。

我需要一些帮助来编写RewriteCond / Rule或Redirect。提前感谢您提供的任何帮助。

(编辑)我决定只使用Redirectmatch将/ folder1 /中任何页面的所有请求重定向到/ folder2 /的主索引页。

RedirectMatch ^ / folder1 / filename1。* $ http://example.com/folder2/index.php

1 个答案:

答案 0 :(得分:0)

你写道:

Change: mysite.com/folder1/filename1.php?a=1&b=2#3
to:     mysite.com/folder2/filename2.php?a=1&b=2#3

在folder2所在目录中的.htaccess文件中,假设是web root:

RewriteEngine On
RewriteBase /

RewriteRule ^folder1/(.*)1-(\d+).php$ folder2/$12-$2.php [QSA,R=301,NC,L]

这匹配folder1后跟一个字符串,数字1,短划线和一个或多个数字。然后将其重定向到folder2,后跟相同的字符串,数字2,破折号以及正则表达式中捕获的相同的一个或多个数字。

使用QSA标志传输查询字符串和哈希参数。