解決できないような興味深い問題があります。その URL へのすべてのリクエストを (別のサーバー上の nginx 経由で) 私の Codeigniter アプリ (別のサーバー上に存在する) にルーティングするように設定された URL があります。たとえば、URL は次のようになります。
http://www.site.com/myappname/controller/function/parameter
Codeigniter の通常の状態では、末尾のスラッシュの後の最初の要素をコントローラー クラスにルーティングし、次に 2 番目をクラス内の関数にルーティングし、3 番目/etc をその関数のパラメーターとしてルーティングします。
私がする必要があるのは、URL の「myappname」を無視し、それなしで URL を介して送信することです。「myappname」はサーバー上のフォルダーではありません。
新しい HTACCESS ルールを追加する必要があるかどうか、またはこれを Codeigniter を介してプログラムで実行できるかどうかは、100% わかりません。
私の現在のHTACCESSファイル:
RewriteEngine on
RewriteCond $1 !^(index\.php|sitemap\.xml|robots\.txt|public|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]
これは、すべての Codeigniter アプリの基本的で単純な HTACCESS セットアップですが、これを使用し、上記の構造を使用して、http://www.site.com/myappnameにアクセスすると、「http://www .site.com/myappname" を Codeigniter 構成で my base_url として設定すると、Codeigniter はそれを次のように変換します。
http://www.site.com/myappname/myappname
それで...誰か助けてくれますか?また、config/routes.php ファイルの先頭に次のコードを追加しようとしました。
$_SERVER['REQUEST_URI'] = str_ireplace('/verified', '', $_SERVER['REQUEST_URI']);
それは実際には部分的に機能しますが、ルートから CSS/JS ファイルを要求すると、組み込みの site_url() 関数を使用してサイトの「base_url」プロパティに基づいて動的リンクを構築するため、それらが正しく取り込まれません。CSS/JS/etc がアプリのルートにある /public フォルダーに存在するため (RewriteCond を介したルーティングから明らかに除外されているため)、これを Codeigniter 内で (システム レベル関数を上書きすることによって) プログラムで 100% 実行できるとは思いません。 .
誰にも提案がありますか?