【问题标题】:htaccess rewrite trouble with "fake" folderhtaccess 用“假”文件夹重写问题
【发布时间】: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


    【解决方案1】:

    我对我的问题有部分答案,尽管这并不完全符合我的意图。我想要 htaccess 的答案,但我没有找到,但我在 CMS 中找到了解决方案。

    我创建了一个指向工作链接的不可见菜单,然后我使用了这个新的不可见菜单项并在其上指向了一个新的可见菜单项。这有我想要/需要的结果。新的可见链接(别名)是为了满足需要而设计的。

    我仍在寻找纯 htaccess 的解决方案.....但在我找到它之前,至少我有一些可行的方法。

    【讨论】:

      【解决方案2】:

      使用RedirectMatch 的力量!所以你的重定向将是:

      RedirectMatch 301 /funfolder/folder2/(.*) /funfolder/fakefolder3/$1
      

      【讨论】:

      • 我试过了,它确实重定向了,但它没有显示内容。 @itoctopus 但是,我将尝试阅读并使用 RedirectMatch。我不知道这件事。谢谢!!
      • 如果它没有显示内容,那么这意味着您缺少 Joomla 网站上的菜单项(或正确的菜单结构)。
      猜你喜欢
      • 1970-01-01
      • 2014-12-24
      • 2015-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 2015-09-27
      • 2011-09-13
      相关资源
      最近更新 更多