情况:
/www/hidden/.htaccess
RewriteCond %{HTTPS} !=on RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
我知道{SERVER_ADDR}给出服务器的IP地址,但它是否返回客户端请求的IP地址?
我也开始认为在VirtualHosts文件中的东西会更合适。 对此有何想法?
应该允许什么:
http://87.65.43.21/hidden/ https://87.65.43.21/hidden/ http://12.34.56.78/hidden/ https://12.34.56.78/hidden/ http://hidden.example.com/ https://hidden.example.com/ http://hidden.com/ https://hidden.com/ http://www.hidden.com/ https://www.hidden.com/
404.php应该是404-ed
http://example.com/hidden/ https://example.com/hidden/ http://www.example.com/hidden/ https://www.example.com/hidden/ http://example.com/hidden/hiddenfile.php https://example.com/hidden/hiddenfile.php etc.
谢谢。
你可以通过在你的.htaccess中添加一些mod_rewrite的魔法来实现
RewriteCond %{HTTP_HOST} ^example\.com [NC] RewriteCond %{HTTP_HOST} ^www\.example\.com [NC] RewriteRule .* http://www.example.com/404.php [R=301] RewriteCond %{HTTPS} !=on RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
这只是你怎么做的一个例子,当然你可以改变规则的顺序和目的地,只要记住添加[L]将阻止mod_rewrite评估任何进一步的规则。
这应该工作,只要example.com DocumentRoot不是/ www,但/ www / something_else。 把这个添加到你的httpd.conf中:
NameVirtualHost 87.65.43.21 NameVirtualHost 12.34.56.78 NameVirtualHost hidden.com NameVirtualHost hidden.example.com <VirtualHost 12.34.56.78 12.34.56.78 hidden.com hidden.example.com> DocumentRooot /www/hidden ServerName hidden.com ServerAlias hidden </VirtualHost>