2017-01-05 19 views
0

私は、実際のフレームワークが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をしたくない。これをどうすれば解決できますか?

+0

デフォルトでフォルダ階層にappとframeworkフォルダのレベルを置き、defaultをpublic_htmlに置き換えることはできますか? – Progrock

+0

要求しているURLと必要なファイルシステムのパスを含めてください。 HTMLソースのリンクに 'public_html'がある場合、それは' .htaccess'ではなくあなたのアプリケーションで解決する必要があります。この「レガシープロジェクト」を公開ウェブスペースに含めると、セキュリティ上の懸念も生じます。 "彼はデフォルトのフォルダを指しています" - 誰が "彼"ですか? – MrWhite

+0

あなたのコード(およびサーバー環境)に依存しますが、コードをそのまま保ち、Webルートからシンボリックリンクを作成することがあります。 'default/index.php'から' public_html/index.php'へのようなものがあります。これはドキュメントルートの外にある可能性があります。 – Progrock

答えて

0

仮想ホストを作成する方法を検索することができます。私は自分のウェブホストのいくつかを知っている私の管理ページを介して仮想ホストを設定することができます。それはあなたのサーバーが指定されたフォルダを含まずにURLを考慮できるようになりますが、必要なリダイレクションを実行する段階に戻ります。

+1

「ララヴェル」はこれにどのように適合していますか? – MrWhite

+0

私の悪い、私はLaravelのタグを見て、パブリックフォルダは私にLarを思い出させると思った! –

0

あなたは正しいルールを適用

が、問題は、あなたが あなたのすべてのリンクから
削除のpublic_htmlに持って、この問題の解決のためのリンクであり、それは自動的にpublic_htmlとせずに必要な パスにリダイレクトします。

関連する問題