1

由于一些内部问题和另一部分的拒绝,我需要一种方法来重定向来自指定域的所有访问。到目前为止,我想出了以下内容:

RewriteCond %{HTTP_HOST} ^bad-domain.com [NC]
RewriteRule ^(.*)$ http://mydomain.com/bad-request.html

这是行不通的。值得注意的是,我不擅长重写,但我正在努力学习。我已经成功地在 PHP 中实现了这一点,但这需要每个项目中的代码,这真的不是要走的路。

感谢所有建议,提示和答案,这使我朝着正确的方向前进。

4

2 回答 2

2

我看不出这不起作用的原因。请再次检查以下几点:

RewriteCond %{HTTP_HOST} ^bad-domain.com [NC,L]
RewriteRule ^(.*)$ http://mydomain.com/bad-request.html

正如 Alexander Støver 指出的那样:

RewriteEngine on

然后,如果您将这些规则放入服务器配置中,则必须重新启动守护程序。所以可能像

/etc/init.d/apache2 restart

如果守护程序抱怨某些事情,请确保检查错误日志文件。应该是这样的:

/var/log/apache2/error_log

或您将日志写入的任何位置。

如果您将这些规则放入“.htaccess”文件中(为什么?),请确保服务器实际配置为使用这些文件并且您允许覆盖文件路径:

AllowOverride:  FileInfo

使用日志记录来调试重写。mod_rewrite 提供了两个选项:

RewriteLog
RewriteLogLevel
于 2012-08-01T16:01:16.630 回答
0

您还需要为图像添加规则。

RewriteCond %{REMOTE_ADDR} !^187\.10\.226\.42
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteCond %{REQUEST_FILENAME} !.(gif|jpe?g|png)$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/maintenance.html [R=307,L]
于 2015-12-19T15:19:21.743 回答