我已将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
答案 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标志传输查询字符串和哈希参数。