Apache-2.2

如何為 Apache 伺服器上的所有域創建 robots.txt 文件

  • February 17, 2022

我們有一個帶有虛擬主機的 XAMPP Apache 開發 Web 伺服器設置,並希望阻止 serps 抓取我們所有的網站。這可以通過 robots.txt 文件輕鬆完成。但是,我們不希望在每個虛擬主機中都包含 disallow robots.txt,然後當我們在另一台伺服器上使用該站點時必須將其刪除。

有沒有辦法使用 apache 配置文件將所有虛擬主機上對 robots.txt 的所有請求重寫為單個 robots.txt 文件?

如果是這樣,你能給我舉個例子嗎?我認為它會是這樣的:

RewriteEngine On
RewriteRule  .*robots\.txt$         C:\xampp\vhosts\override-robots.txt [L] 

謝謝!

Apache mod_alias就是為此而設計的,可以從核心 Apache 系統中獲得,並且可以在一個地方設置,幾乎沒有處理成本,這與 mod_rewrite 不同。

Alias /robots.txt C:/xampp/vhosts/override-robots.txt

使用 apache2.conf 文件中的該行,在所有虛擬主機之外,http ://example.com/robots.txt - 在它服務的任何網站上,將輸出給定文件。

將通用全域robots.txt文件放在伺服器文件系統中可供 apache 程序訪問的某個位置。為了便於說明,我假設它位於/srv/robots.txt.

然後,要設置mod_rewrite將該文件提供給請求它的客戶端,請將以下規則放入每個虛擬主機的<VirtualHost>配置塊中:

RewriteEngine on
RewriteRule ^/robots.txt$ /srv/robots.txt [NC, L]

如果您將重寫規則放入每個目錄的.htaccess文件而不是<VirtualHost>塊中,則需要稍微修改規則:

RewriteEngine on
RewriteBase /
RewriteRule ^robots.txt$ /srv/robots.txt [NC, L]

引用自:https://serverfault.com/questions/213422