2

サブフォルダーに向けられたワイルドカード サブドメインを使用してシステムをセットアップしています。私以外の理由で、これは .htaccess で行う必要があります。たとえば、http: //subdomain.example.com を example.com の public_html の下のディレクトリ /subdomain/ にリダイレクトするには、次のように部分的に動作します (この Q&A のおかげで):

RewriteEngine On
RewriteRule ^subdomain/ - [L]
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$
RewriteRule ^(.*)$ /subdomain/$1 [L]

拡張子が .php の場合を除き、すべての種類のファイルで機能します。たとえば、sometext.txt ファイルを /subdomain/ ディレクトリにドロップすると、http://subdomain.example.com/sometext.txt で取得できますがテキスト ファイルの拡張子を .php に変更すると、リダイレクト ループによる 500 エラー。

PHPモジュールがファイルを読み取ろうとする方法に何か奇妙なことが起こっていると思います。または、Apache と PHP の関係の何か。私はこれに慣れていません。それが私が尋ねる理由です。

共有ホストを使用しているため、Apache 構成にアクセスできません。

4

2 に答える 2

0

このようにしてうまくいくか試してみませんか?

RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.localhost$
RewriteRule ^(.*)$ http://localhost/subdomain/$1 [L]

したがって、ローカルホストの代わりに、実際のドメインURLを直接追加してみてください。

私はローカルホストでこれをテストしました。最初にそのようなURLを使用して、次に正しくリダイレ​​クトします

http://subdomain.localhost/test.txt
http://subdomain.localhost/test.php

少しリラックスして、コーヒーを飲んでカムバックすることをお勧めします。(これが役立つ場合もあります)

次に、リダイレクトだけに焦点を当てます。

  • Apache構成の問題を除外する
  • あなたは後で試合301を心配することができます
  • test.phpのみで動作し、index.phpは動作しません

デバッグでこれを試してください:

  • 他のすべてのChromeブラウザタブを閉じます。
  • テストするURLをシークレットモードで開きます
  • そのシークレットモードを閉じ続けると、常に完全に更新されます
  • htacessファイルを変更し、常に新しいシークレットタブを開きます
于 2013-01-11T22:59:14.327 に答える
0

私が疑ったように、問題はホスティング プロバイダーの構成が原因でした。.htaccess は問題ありません。これは、php-fpm と FastCgi を使用する DirectAdmin で最近発見された問題だと言われています。(解決策は、私のホーム ディレクトリにある public_html へのシンボリック リンクを削除し、空のディレクトリに置き換えることでした。これについてはこれ以上わかりません!)

ありがとうございます!

于 2013-01-12T00:59:55.547 に答える