需要使用httpd.conf而不是.htaccess进行重写

时间:2010-04-13 15:42:09

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

我正在使用阻止我的.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>

2 个答案:

答案 0 :(得分:1)

您需要将该代码包装在&lt; Directory&gt;中指示。它的位置取决于你在http.conf文件中还有什么。有关详细信息,请参阅Apache docs

然而,正如笨蛋所说;如果你的主机不允许你使用.htaccess文件,你几乎没有机会被允许在httpd.conf文件附近。

答案 1 :(得分:1)

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

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

这会向在用户代理字符串中使用Googlebot的任何人发送HTTP 403 Forbidden。此重写条件将应用于所有虚拟主机,方法是将其应用于“/”文件夹。