【发布时间】:2017-11-03 23:05:30
【问题描述】:
在我问问题之前,让我先说我有一个有效的 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 工作?
【问题讨论】:
标签: .htaccess mod-rewrite joomla