在 Laravel 中,你可以通过配置虚拟主机(Virtual Hosts)来实现不同子域和主域的 robots.txt
文件。以下是实现这一目标的步骤:
首先,你需要在你的 Web 服务器(如 Nginx 或 Apache)中配置虚拟主机,以便为不同的子域和主域提供服务。
server {
listen 80;
server_name example.com;
root /path/to/your/laravel/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
server {
listen 80;
server_name subdomain.example.com;
root /path/to/your/subdomain/laravel/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query.string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastftp_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
<VirtualHost *:80>
ServerName example.com
DocumentRoot /path/to/your/laravel/public
<Directory /path/to/your/laravel/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain.example.com
DocumentRoot /path/to/your/subdomain/laravel/public
<Directory /path/to/your/subdomain/laravel/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
在每个域的 public
目录下创建 robots.txt
文件。
robots.txt
User-agent: *
Disallow: /admin/
robots.txt
User-agent: *
Disallow: /
Laravel 默认会从 public
目录下提供静态文件,因此你只需要确保 robots.txt
文件位于 public
目录下即可。
配置完成后,重启你的 Web 服务器以使更改生效。
sudo systemctl restart nginx
sudo systemctl restart apache2
打开浏览器,访问 http://example.com/robots.txt
和 http://subdomain.example.com/robots.txt
,确保它们显示了正确的 robots.txt
文件内容。
通过配置虚拟主机和创建相应的 robots.txt
文件,你可以在 Laravel 中为不同的子域和主域提供不同的 robots.txt
文件。这种方法不仅适用于 robots.txt
文件,还可以用于其他静态文件的管理。
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云