これは私のディレクトリです:
root/
├── app/
├── public/
| ├── css/
| ├── img/
| ├── index.php
| ├── .htaccess
├── .htaccess
フォルダーへのすべてのリクエストをroot/
フォルダーに書き換えてから、変数を介してpublic/
url を渡します。
これは私のです:index.php
$_GET
root/.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