【问题标题】:Need to use httpd.conf instead of .htaccess for rewrite需要使用 httpd.conf 而不是 .htaccess 进行重写
【发布时间】:2023-03-08 01:38:02
【问题描述】:

我正在使用一个阻止使用我的 .htaccess 文件的主机,因此我无法使用它更改我的永久链接。我需要弄清楚要使用什么代码以及将其放在我的 httpd.conf 文件中的哪个位置以获得相同的效果。

.htaccess 文件中的代码如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

【问题讨论】:

  • 如果您的主机阻止 .htaccess,您可能无法访问 httpd.conf...否则您可以只打开 .htaccess 文件。换一个新主机。

标签: .htaccess mod-rewrite apache httpd.conf


【解决方案1】:

例如,如果您想在整个服务器(可能由数百个虚拟主机组成)中阻止对 GoogleBot 的访问,您可以将其添加到您的 httpd.conf 文件中:

#setup the root dir
<Directory />
    RewriteEngine On
    RewriteCond %{HTTP_USER_AGENT} Googlebot
    RewriteRule .* - [F,L]
</Directory>

这将向在其用户代理字符串中使用 Googlebot 的任何人发送 HTTP 403 Forbidden。并且这个重写条件将应用于所有虚拟主机,通过将它应用于“/”文件夹。

【讨论】:

    【解决方案2】:

    您需要将该代码包装在 指令中。它的去向取决于您在 http.conf 文件中还有什么。请参阅Apache docs 了解更多信息。

    但是,正如傻瓜所说;如果您的主机不允许您使用 .htaccess 文件,那么您几乎没有机会被允许靠近 httpd.conf 文件。

    【讨论】:

    • 我是否将上述相同的代码包装在 中?不知道它是如何工作的。
    • 是的。 指令只是告诉 Apache,其中的任何代码都应该只应用于有问题的目录(在本例中是您尝试将 .htaccess 文件放入的目录)。
    • 谢谢!!我将上面代码中的所有内容都放入了 标记内的 httpd.conf 文件中,就在其他内容的下方。在我重新启动 apache 之后,它就像一个冠军一样工作。这是一种奇怪的情况,即 .htaccess 被防火墙阻止。我可以完全访问服务器,但不能访问造成损坏的防火墙,所以我必须通过 httpd.conf 完成所有操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多