2016-10-13 14 views
0

このページをリダイレクトするには /約 〜 /foo/index.php/pages/about 、ブラウザでURLを変更する必要はありませんか?.htaccessで/foo/index.php/pages/aboutにリダイレクトする方法は?

これは動作します:

RewriteRule "^about$" "/foo/index.php/pages/about" [R] 

しかし、それは私が必要なものではないブラウザでURLを変更します。

私はこれを書いてみました:

RewriteRule "^about$" "/foo/index.php/pages/about" 

または

RewriteRule "^about$" "/foo/index.php/pages/about" [QSA] 

または

RewriteRule "^about$" "/foo/index.php/pages/about" [QSD] 

をそれらのすべては、CodeIgniterのからページ(ない "が見つかりませんでした404ページ" を表示しますApacheデフォルト1)。 また、CodeIgniterのエラーログには「404 Page Not Found:About/index」と表示されます。

代わりに/foo/index.php/aboutにリダイレクトされているように見えますが、解決方法を見つけることができません。

+0

routes.phpにいくつかのルートを設定していますか?また、codeigniterクラスに従い、ファイル名を指定する方法はhttp://www.codeigniter.com/user_guide/general/styleguide.html#file-namingとhttp:// www。 codeigniter.com/user_guide/general/routing.html#examples – user4419336

+0

ターゲットURLとサイト全体が正常に動作します。リダイレクトを完了できません。 – ken75113

答えて

0

私はこれの回避策を見つけました。 .htaccess

、このルールを追加します:CodeIgniterのroutes.php

RewriteRule ^about$ /foo/index.php 

を、このルートを追加します。

$route['about'] = 'pages/about'; 

​​が/foo/index.phpにリダイレクトされ、その後、CodeIgniterのURLでaboutを扱いますへのアクセス通常は/foo/index.php/pages/aboutからアクセス可能なpages/aboutにルーティングします。

CodeIgniterはRewriteRuleのindex.phpの後に何かを無視し、実際のURLの何かをコントローラとして扱いますが、その理由を理解することはできません。

これは正式な解決策のようには見えませんが、少なくともリダイレクトは期待どおりに動作します。

関連する問題