Drupal 在没有 .htaccess 文件的情况下仍然可以工作

Drupal still working without .htaccess file

我的网站有一个奇怪的问题。

最近我发现有一个域(不是我的)指向我的 IP。我的 IP 在 Drupal 7 (LAMP) 和 Ubuntu 上托管了一个系统。我的站点(仍在开发中,仅在我的 IP 中工作)已经被 Google 和其他域名编入索引,因此我决定使用简单的“.htaccess”技巧来阻止该站点...

我无法使用这个和那个片段来阻止 "intruder" 站点...在多次尝试后感到沮丧,我写了一些垃圾以查看是否发生了什么...但一切仍在运行。然后我删除了 Drupal root 中的 .htaccess 文件...但是直到现在一切都还在工作。

我大约 10 年前就开始开发,几年前管理小型 VPSs,当你在 .htaccess 中犯一个小错误时,就什么都做不了了!没关系!所以,正如你想象的那样,我迷路了。

这是我搜索所有 .htaccess 文件时的结果:

我的 Drupal 安装在 /var/www/html

使用 devel 模块,这是我的 phpinfo 的一部分(如您所见,.htaccess 不在 Drupal 根目录中):

可能,我犯了一个非常愚蠢的错误,但我已经花了 2 个小时,现在我没有更多的地方可以看。

我重新启动了 Apache,发现 .htaccess 文件中存在某种未知的缓存。我还重新启动了 VPS (Digital Ocean)...没有 .htaccess 文件,但我的 Drupal 安装仍在运行...

我遗漏了一些东西...请帮忙!

更新:每个页面都还在工作...还有不错的 URL。 更新 2:我附上了 Apache 的 'sites-enabled' 文件夹,其中只有一个文件及其内容。

即使 .htaccess 文件不存在,主页也会加载,如果您想停止 google 的索引,请在 robots.txt 文件中禁止它。你也可以制作一个 htacesss 弹出密码保护 too.Also 尝试 ping url 并查看 dev/Production 如果 url 相同,服务器是否给出响应。

很可能您的 VirtualHost 配置 and/or apache 配置文件中有一些重写规则。检查 /etc/apache2/sites-enabled 中的所有文件是否有任何 RewriteRules。

嗯...终于发现自己的错误了

我将我的重写配置放在 /etc/apache2/apache2.conf 中,可能我在开始设置 nice-urls 时遇到了一些问题,然后我忘记正确启用它:/

我知道如果没有这些重写规则,Drupal 就不可能有漂亮的 URL,所以它们应该在某个地方。所以我搜索字符串 "RewriteEngine on",结果是 "apache2.conf"(见图)。

现在已经解决了。抱歉。

你可以把

Deny from all
Allow from your.ip.address 

在 .htaccess 文件中。这将阻止除您之外的所有人访问该站点。

参考:https://httpd.apache.org/docs/2.2/howto/access.html

还有一个 header,您可以这样添加:

Header set X-Robots-Tag noindex,noarchive

这要求搜索引擎不要索引或存档内容。如果访问被拒绝,则没有必要。请务必在网站上线时将其删除。

参考:https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag?hl=en