以下は私のサイトのディレクトリ構造です。
htdocs/
My-Project/
public/
index.php
css/
img/
js/
src/
config.php
templates/
library/
src
ディレクトリ内のファイルに直接ユーザーがアクセスしたくない。 src
には、テンプレートとバックエンドのロジックスクリプトが含まれています。
ユーザーが自分のWebサイト(ルートフォルダー.htaccess
)にアクセスすると、My-Project
にリダイレクトされるように、My-Project/public/index.php
を設定したい。インデックスページにいる間、URLがMy-Project.com
のように見えるようにしたいと思います。
何か助け?これを行う最善の方法について、こことネット上で多くの矛盾するアドバイスを見るので、私は.htaccessファイルを変更することをheしています。
このコードを/My-Project/.htaccess
に配置します。
RewriteEngine On
RewriteBase /My-Project/
RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]
RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
.htaccessの最初の行に次を追加します
DirectoryIndex public/index.php public/index.html
@anubhavaのlocalhostでの操作とわかりやすいURLに対する応答に変更を加えました。
ディレクトリ構造:
myapp/.htaccess(myappルートフォルダー)
RewriteEngine On
RewriteBase /myapp
RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]
RewriteRule ^(.*)$ public/index.php?$1 [L,QSA]
myapp/public/.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]
myapp/public/index.php
<?php
echo 'Hello<br>';
echo $_SERVER['QUERY_STRING'];
一部のリクエスト:
こんにちは
http:// localhost/myapp/post/new
こんにちは
投稿/新規