如何使用 CodeIgniter 为 robots.txt 进行内部重定向?

How to do an internal redirect with CodeIgniter for robots.txt?

我有一个服务器 运行 Apache 2.2.24 和 CodeIgniter 2.1.0。

我想使用 CodeIgniter 动态处理对 /robots.txt 的请求,但目前我找到的唯一解决方案是使用 .htaccess 发出临时重定向,告诉客户端获取 /robots_txt相反(注意下划线)。

RewriteRule ^robots\.txt$ /robots_txt [NC,L,R=307]

稍后在 .htaccess 中有 CodeIgniter 的这些规则:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/

在 CodeIgniter 中,我可以将 robots_txt 的请求路由到控制器。

我的问题是,如何将其更改为内部重定向?也就是说,当我收到 robots.txt 的请求时,不是向客户端发出重定向响应,而是如何重写 url 以在内部将其处理为 robots_txt?

我尝试过的任何操作都会导致 404。

要避免完全重定向,请按以下方式进行:

# rewrite robots.txt to index.php
RewriteRule ^robots\.txt$ index.php?/[=10=] [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/ [L]

然后在 CodeIgniter 中,您可以将 robots.txt(这里没有下划线)的请求路由到控制器。