これは私のディレクトリです:
root/
├── app/
├── public/
| ├── css/
| ├── img/
| ├── index.php
| ├── .htaccess
├── .htaccess
フォルダーへのすべてのリクエストをroot/フォルダーに書き換えてから、変数を介してpublic/url を渡します。
これは私のです:index.php$_GETroot/.htaccess
DirectorySlash off
RewriteEngine on
RewriteRule (.*) public/$1
これは私のroot/public/.htaccessです:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-dユーザーにディレクトリを見せたくないので、ありません。たとえば、次のとおりですroot/css。
私が行ったとき、root/appそれは正常に動作し、私は取得し$_GET['url'] = 'app'ます。しかし、私が行くときroot/publicは得られません$_GET['url'] = public。代わりに、publicフォルダーのディレクトリ構造が表示されます。そして、root/public/(末尾のスラッシュに注意してください)に行くと、に行きroot/public/index.php、変数も渡しません。
直し方を教えていただけるとありがたいです。root/publicに書き換えたいroot/public/index.php?url=public。
編集:また、私がそれに行くと、の代わりにroot/public/css戻ります。フォルダにアクセスすると、最初のファイルを無視しているようです。$_GET['url'] = 'css'$_GET['url'] = 'public/css'public.htaccess