我有一台运行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.
答案 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
的请求(此处没有下划线)路由到控制器。