如何使用 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
(这里没有下划线)的请求路由到控制器。
我有一个服务器 运行 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
(这里没有下划线)的请求路由到控制器。