0

標準の.htaccess書き換えルールでCodeigniterを使用しているため、URL内に/index.php/は表示されません。

最近、サイトを一時的に停止する必要があったため、全員を「停止」ページにリダイレクトしたいと思いました。以下が機能しました:

$route['default_controller'] = "down";
$route['(:any)'] = "down";

しかし、この場合、301が本当に適切であることを私は知っています。

どのように、どこに設定すればよいですか?私はroutes.phpでそれを指定する方法が見当たらず、既存のルールのために.htaccess内でそれを行う方法について混乱していました...。

RewriteBase /

RewriteCond %{REQUEST_URI} ^_system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond %{REQUEST_URI} ^myapp.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond $1 !^(index\.php|resources|files|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 
4

1 に答える 1

1

301 リダイレクトは必要ありません。301 は「永続的」を意味し、これは一時的なリダイレクトにすぎません。他のすべてのルールの上にこれを追加すると、htaccess でこれを行うことができます。

RewriteRule ^ /down.html [L,R=302]

他のルールより上にある限り、リクエストは にリダイレクトされ/down.htmlます。ブラウザを外部にリダイレクトしたくない場合 (たとえば/down.html、URL アドレス バーに URL を表示する)、,R=302角括弧からビットを削除すると、コンテンツが down.html から提供されている間、URL アドレス バーは変更されません。 .

于 2012-10-19T02:41:11.330 に答える