【问题标题】:How to load index.php instead of index.html only for my IP address?如何仅为我的 IP 地址加载 index.php 而不是 index.html?
【发布时间】:2014-06-29 17:13:23
【问题描述】:

在构建Joomla网站时,我经常添加一个简单的“即将推出”页面作为“index.html”作为默认加载,然后我访问example.com/index.php来加载Joomla。

是否可以在 .htaccess 中添加规则,以便仅为我自己的 IP 地址加载“index.php”文件?

(我想这样做是因为 Joomla 中的“主页”链接会加载“即将推出”页面,然后每次我想查看主页时都必须添加“index.php”。)

【问题讨论】:

    标签: .htaccess joomla


    【解决方案1】:

    来自 Akeeba 的 Nicholas K. Dionysopoulos 往往是网站维护和安全讨论的好人... http://magazine.joomla.org/issues/issue-feb-2011/item/378-how-offline-is-joomla-offline-mode

    那篇文章的具体代码:

    RewriteEngine On 
    RewriteBase /$rewrite_base 
    RewriteCond %{REMOTE_HOST} !123\.123\.123\.123 
    RewriteCond %{REQUEST_URI} !offline\.html
    RewriteCond %{REQUEST_URI} !(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.swf|\.css|\.js)$ 
    RewriteRule (.*) offline.html    [R=307,L]
    

    (另外,我自己倾向于在演示服务器上工作,但我很确定离线模式允许某人在以超级管理员身份登录时仍然可以看到该站点,因此您实际上可能不需要触摸htaccess。您可以在模板的 offline.php 文件中设置此页面的样式。)

    【讨论】:

    • 这看起来是一个更好的方法,而且它几乎可以工作,但非授权用户被重定向到example.com/$rewrite_base/offline.html
    • 如果去掉 RewriteBase /$rewrite_base 行会怎样?或者改用 RewriteBase /。
    • 是的,将 RewriteBase /$rewrite_base 更改为 RewriteBase / 效果很好,这是我问题的答案 :) 顺便说一句,我倾向于避免使用 Joomla 离线模式,因为我经常需要查看网站的外观未登录时向访客发送。
    • 实际上有一个单独的权限查看离线站点,这将允许您允许不是超级管理员的人登录该站点。它在全局配置中。
    • 谢谢你,Elin,我不知道 Joomla 中有这个选项。它可能会在开发过程中派上用场。
    【解决方案2】:

    您想根据您的 IP 创建一个重写,它应该在 HTTP 标头 REMOTE_ADDR 中可用

    RewriteEngine on
    RewriteCond %{REMOTE_ADDR} ^123\.456\.789\.0$
    RewriteRule ^http://yourdomain.com/$ /index.php [R]
    

    【讨论】:

    • 谢谢,但这给了我一个重定向循环错误。
    【解决方案3】:

    不要使用 index.html,而是将它放在一个 offline.php 文件中,然后将该文件放在您的模板文件夹中,顶层。然后将站点设置为离线,您必须登录才能看到它。这样好奇的人就无法四处闲逛。

    【讨论】:

      猜你喜欢
      • 2012-12-21
      • 2013-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-16
      • 2018-09-10
      • 2013-07-11
      相关资源
      最近更新 更多