私は、実際のフレームワークがpublic_htmlフォルダの上のフォルダにあるサーバー上にレガシープロジェクトを持っています。だから、ディレクトリ構造はこのようなものです:htaccessからURLからpublic_htmlを削除します
- domainname.com
- アプリ/
- フレームワーク/
- のpublic_html/
- のindex.php
今私は私たち自身のサーバーに配置したいです。これは、ホスティング会社によって作成されたアプリケーションです。ルートフォルダはデフォルトはです。だから今、私のディレクトリ構造は、このようなものです:
- デフォルト/
- アプリ/
- フレームワーク/
- のpublic_html/
- のindex.php
今、彼はで、public_htmlフォルダではなく、デフォルトのフォルダを指しています。これは旧バージョンとの唯一の違いです。そこで、.htaccessファイルをルートフォルダのデフォルトに追加しました。このファイルの内容は次のとおりです。私は私のウェブサイトに行くとき
Options +FollowSymLinks
RewriteEngine on
RewriteBase/
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule^- [L]
RewriteRule . index.php [QSA,NS]
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule . /index.php [L,QSA,NS]
だから、それは動作します:私はこのようなの.htaccessファイルが持っている私のpublic_htmlのフォルダで
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /public_html/$1 [QSA,L]
</IfModule>
。しかし、私がリンクをクリックすると、私は得る:http://domainname.com/public_html/theclickedpage/。
しかし、私は私のURLにpublic_htmlをしたくない。これをどうすれば解決できますか?
デフォルトでフォルダ階層にappとframeworkフォルダのレベルを置き、defaultをpublic_htmlに置き換えることはできますか? – Progrock
要求しているURLと必要なファイルシステムのパスを含めてください。 HTMLソースのリンクに 'public_html'がある場合、それは' .htaccess'ではなくあなたのアプリケーションで解決する必要があります。この「レガシープロジェクト」を公開ウェブスペースに含めると、セキュリティ上の懸念も生じます。 "彼はデフォルトのフォルダを指しています" - 誰が "彼"ですか? – MrWhite
あなたのコード(およびサーバー環境)に依存しますが、コードをそのまま保ち、Webルートからシンボリックリンクを作成することがあります。 'default/index.php'から' public_html/index.php'へのようなものがあります。これはドキュメントルートの外にある可能性があります。 – Progrock