【问题标题】:How to redirect all files/folders except index.php, to index.php?如何将除 index.php 之外的所有文件/文件夹重定向到 index.php?
【发布时间】:2020-08-06 16:02:37
【问题描述】:

我已经建立了一个虚拟网站来测试 MediaWiki,地址为 https://wiki.rehman.website/

我想将所有直接外部流量重定向到位于 wiki.rehman.website/ 之后的文件和文件夹到 wiki.rehman.website/index.php。比如:

这些应该重定向到 wiki.rehman.website/index.php:

  • wiki.rehman.website/extensions/
  • wiki.rehman.website/docs/contenthandler.txt
  • wiki.rehman.website/NonExistantFileOrFolder

但显然这些不应该被重定向(以防止循环重定向):

  • wiki.rehman.website/
  • wiki.rehman.website/index.php

请问我该怎么做?

我在这里试图实现的是防止匿名用户(即非 MediaWiki 登录用户)访问网络目录或文件的任何部分。

这是我第一次建立网站,也是我第一次安装 MediaWiki 的私有实例。如果您发现任何其他漏洞或问题,如果您能告诉我将是最有帮助的。

非常感谢!

【问题讨论】:

    标签: apache .htaccess mod-rewrite mediawiki mediawiki-installation


    【解决方案1】:

    您可以在根文件夹中设置一个 .htaccess 文件来完成此操作。

      RewriteCond %{REQUEST_URI} !index\.php$ [NC]
      RewriteRule ^(.*)$ http://www.example.com/index.php [L,R=301]
    
      RewriteCond %{REQUEST_FILENAME} !-f 
      RewriteCond %{REQUEST_FILENAME} !-d 
      RewriteRule ^(.*)$ index.php [QSA] 
    

    有关更多信息,请参阅其他问题: How to Redirect All urls to a new domain in apache, except one

    【讨论】:

    • 谢谢。不幸的是,这两种选择似乎都部分破坏了该网站。重定向工作,但 MediaWiki 站点的元素似乎被阻止。也许这也会重定向 MediaWiki 尝试访问网络目录的其他部分?如果您查看像 Wikipedia 这样的常见 MediaWiki 站点,访问诸如 en.wikipedia.org/docs 或 en.wikipedia.org/docs/contenthandler.txt 之类的 URL 是行不通的。如果重定向在我的情况下不起作用,我该如何做维基百科的工作?感谢您的帮助!
    • 类似这个答案的接缝可能会有所帮助:stackoverflow.com/a/50504756/68264 您还应该使用“Options -Indexes”或您的 apache.config 禁用 .htaccess 上的目录列表,这样没有人可以在你所有的文件。
    猜你喜欢
    • 2012-12-07
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    相关资源
    最近更新 更多