在我提出问题之前,让我首先说我有一个有效的htaccess规则:
#1.
RewriteCond %{THE_REQUEST} ^GET\ /folder1/
RewriteRule ^folder1/(.*) /good/$1 [L,R=301]
并且,就像我说的,这很有效。
但是,当我尝试这样做时:
#2.
RewriteCond %{THE_REQUEST} ^GET\ /folder1/
RewriteRule ^folder1/(.*) /funfolder/good/$1 [L,R=301]
这不再适用了。
所以这是我的问题。
如果我想重写以下内容:
#3.
http://www.mydomain/funfolder/folder2/sheet to
http://www.mydomain/funfolder/fakefolder3/sheet
我写的时候:
#4.
RewriteRule ^funfolder/folder2/sheet$ /funfolder/fakefolder3/sheet?&%{QUERY_STRING}
或
#5.
RewriteCond %{THE_REQUEST} ^GET\ /funfolder/folder2/
RewriteRule ^funfolder/folder2/(.*) /funfolder/fakefolder3/$1 [L,R=301]
它不起作用。我没有看到我想看到的内容。
如果我
#6.
Redirect 301 /funfolder/folder2 http://www.mydomain/funfolder/fakefolder3
重定向有效,但不是内容。
我不知道它是否有帮助,但funfolder不是一个真正的文件夹。既不是folder2也不是fakefolder3。但是,CMS(joomla)会生成folder2和funfolder。但我想添加fakefolder3。
我还要移动上述规则的顺序,因为还有其他重写规则。但是,它没有产生任何差异。
我不明白的是,为什么#1有效,#2没有。我想如果我能理解其中的原因,它也可能会给我如何做到#3的答案。用#4改变或改变#5
然后我可以随时添加#6。
这有什么意义吗?任何人都知道为什么我不能让#2工作(因此,我的真正问题),如何让#3工作到#4或#5?答案 0 :(得分:1)
使用RedirectMatch
的力量!所以你的重定向将是:
RedirectMatch 301 /funfolder/folder2/(.*) /funfolder/fakefolder3/$1
答案 1 :(得分:0)
我对我的问题有一部分答案,虽然这不完全是我的意图。我想用htaccess回答,我没有找到,但我在CMS中找到了一个解决方案。
我创建了一个指向工作链接的隐形菜单,然后我使用了新的隐形菜单项并在其上指向了一个新的可见菜单项。这有我想要/需要的结果。新的可见链接(别名)是为了满足需要而制作的。
我仍在寻找纯粹htaccess的解决方案.....但直到找到它,至少我有一些有效的方法。