我正在尝试获取一些不错的URL。我想用
https://sub.domain.edu/fs/7356
对于
https://sub.domain.edu/fs/index.php?ind=7356
我对该目录的.htaccess是:
RewriteEngine On
RewriteBase /fs/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?ind=$1 [L,QSA]
该页面在浏览器中工作正常。 PHP脚本有效。一切看起来很棒。但是ssl_access_log将每个页面访问显示为404。
“获取/ fs / 7356 HTTP / 1.1” 404 9241
除了logwatch将所有这些404标记为可能是恶意探测器之外,这只会令人讨厌。每天早上,我都会收到一封电子邮件,说数十个IP试图探查该站点。我尝试将R = 301添加到RewriteRule中,但它会完全重定向到我要避免的完整URL。
答案 0 :(得分:0)
我必须制作一个自定义日志格式。在/etc/httpd/conf.d/ssl.conf中,我注释掉了创建ssl_acess-log文件并将其替换为LogFormat和Customlog指令的条目。
#TransferLog logs/ssl_access_log
LogFormat "%h %l %u %t \"%r\" %s %b" logwatchfix
CustomLog logs/ssl_access_log logwatchfix
http://httpd.apache.org/docs/current/mod/mod_log_config.html
这导致与原始输出几乎相同,唯一的例外是将“%> s”替换为“%s”。它的工作方式与我理解文档的方式相反。
“%s状态。对于内部已重定向的请求,这是原始请求的状态。将%> s用作最终状态。”
我本来以为“原始请求的状态”应该是“ 404”,。htaccess重定向后的“最终状态”应该是“ 200”。实际上,在我的情况下,它的工作与之相反。我也将类似的.htaccess文件放在其他以相同方式工作的目录中。我在httpd.conf文件中将目录索引设置为index.php而不是index.html,但这似乎没有什么区别。