パブリックフォルダーで開始する必要がある社内アプリを構築しました。ディレクトリ構造は次のとおりです
myapp/conf
myapp/tmp
myapp/doc
myapp/public
myapp/public/css
myapp/public/js
myapp/public/index.php
myapp/public を webroot にする代わりに、ユーザーが webroot サブディレクトリにインストールした場合、URL は次のようになります。
somehost/myapp/public/index.php
/myapp/.htaccess でリダイレクトして、すべてを /public/index.php に転送する方法はありますが、URL も /public を含むように変更します。
パブリックにリダイレクトする方法を見つけましたが、/public/ で URL 書き換えを行っているため、パスに /public/ を含めるには $_SERVER['REQUEST_URL'] が必要です。
他のすべて (/conf や /doc など) へのアクセスを防止したい
運が良ければ?
私が試したこと:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule (.*) index.php/$1 [R=301,L]
RewriteRule ^$ public [L]
</IfModule>
しかし、これは public を前に置くmyapp
ようで、URL は次のようになります: localhost/public/myapp/
、代わりに必要ですlocalhost/myapp/public/
簡単に言えば、/whatever/* へのすべての URL に、/whatever/public/* に public を追加する必要があります。
ソリューションは、ドメイン名と「myapp」名から独立している必要があります。ルート フォルダ (「myapp」) に任意の名前を付けることができますが、常に「public」というサブ ディレクトリが存在します。