簡體   English   中英

基於名稱的虛擬主機?

[英]Name based virtual host?

我有一個使用Apache2的新站點。 查看我的服務器日志,我發現有越來越多的其他域名(都由GoDaddy托管)正在神秘地指向我的服務器的IP地址。 我不知道這有什么害處,但我看不出任何讓我繼續這種狀況的理由。 從我完成的谷歌搜索工作中,我已經了解到,阻止這種情況的方法是設置基於名稱的虛擬主機,並拒絕其他域名指向我的內容的任何嘗試。 但是,我完全不確定如何設置相關條目。 查看我的/etc/apache2/apache2.conf文件中的注釋,我得到的印象是我應該按照

NameVirtualHost mysite.com:80
<VirtualHost mysite.com:80>
ServerName mysite.com
ServerAlias:www.mysite.com
ErrorLog:/var/log/mysite.error.log
CustomLog:/var/log/mysite.access.log
</VirtualHost>

這可能是正確的,也可能不是正確的,但是我從來沒有隨意修改過apache配置文件,除此之外,我一點也不知道這將阻止另一個crappysite.com指向我的IP地址並顯示我的內容。

任何人都可以告訴我我在這里如何做事,我將非常榮幸。

ps-從我看到的內容來看,我似乎沒有httpd.conf文件。 只是apache2.conf。

也許還有另一種方法可以通過編寫htaccess規則來專門將不包含mysite.com或www.mysite.com的所有請求重定向到默認的404頁面?

為了任何來到這里尋求類似問題解決方案的人的利益,該怎么辦

<VirtualHost ip_address:80>
ServerAdmin admin@...
DocumentRoot /var/www/html/
ServerName mysite.com
ServerAlias www.mysite.com
ErrorLog /var/log/mysite.error.log
CustomLog /var/log/mysite.access.log combined
RewriteEngine On
RewriteCond  %{HTTP_HOST}  !^(www.mysite|mysite).com$ [NC]
RewriteRule ^ [F]
</VirtualHost>

不用說你應該

  • 輸入服務器的IP地址
  • 使用您網站的域名
  • 確保啟用了mod_rewrite

您可以查看通過簡單的PHP腳本啟用了哪些模塊

<?php
print_r(apache_get_modules());
?>

如果mod_rewrite沒有顯示在該列表中,您通常可以通過簡單地從

/etc/apache2/mods-available to
/etc/apache2/modes-enabled

然后重啟Apache

service apache2 restart

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM