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

时间:2017-12-05 20:34:11

标签: .htaccess mod-rewrite codeigniter-2

我有一台运行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?/$1

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

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

,而不是向客户端发出重定向响应?

我尝试过的任何内容都会导致404.

1 个答案:

答案 0 :(得分:0)

要避免完全重定向,请按以下步骤操作:

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

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

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