すべてを説明するために着信する長いテキスト (多くのリンクを投稿することはできません。ただし、すべての ermj リンクは有効にする必要があります)
.htaccess ファイルを使用すると表示される奇妙な問題があります
サーバーのルート フォルダーは、メイン ドメイン ( www.example.com.br ) 用に設定されています。そのルートのフォルダー/ermjを指しているセカンダリ ドメイン ( www.ermj.com.br ) があります。したがって、ermjフォルダー (例: file.jpg ) にファイルがある場合、www.ermj.com.br/ file.jpgまたはwww.example.com.br/ermj/file.jpgのいずれかでアクセスできます。
このエラーのテスト用にこのフォルダーを作成しました
このフォルダ内には3つのファイルがあります
index.php
<?php
$a = $_GET["codigo"];
echo "Codigo = $a";
?>
home.php
<?php
echo "home.php";
?>
.htaccess
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?codigo=$1
この .htaccess の考え方は、サブフォルダー/ファイルが存在しない限り、サブフォルダーやファイル リンクを index.php ファイルのパラメーターに変換することです。実際にwww.ermj.com.br/teste/subfolder im にアクセスしようとすると、 index.php?codigo=subfolder/にアクセスすると、インデックス ファイルの結果が表示されます
Codigo = subfolder/
home.phpファイルにアクセスしようとすると問題が発生し、動作しません
www.ermj.com.br/teste/home.phpは、 index.php?codigo=home.phpの内容であるCodigo = home.php を出力します。
アドレスに ermj フォルダーを書き込むことで、home.php にアクセスできることを発見しました。
www.ermj.com.br/ermj/teste/home.php - 正しいコンテンツを出力するようになりました - home.php 突然、セカンダリ ドメインがメイン ドメインのルート フォルダでファイルを探しているようです。この場合、.htaccess ルールは引き続き機能します。
www.ermj.com.br/ermj/teste/subfolder/ 印刷Codigo = subfolder/
親フォルダーに他の .htaccess がなく、.htaccess が teste フォルダーから削除された場合。問題はありません。すべてのファイルは、フォルダーを書き込まずにセカンダリ ドメインでアクセスできます。
そう。.htaccess を有効にしたまま、これを解決するにはどうすればよいですか?
(編集 1) .htaccess を変更してさらにいくつかのテストを行い、条件が検索しているものを表示しました
新しい .htaccess
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?codigo=%{SCRIPT_FILENAME}
したがって、%{SCRIPT_FILENAME} をパラメーターとして送信するようになったので、印刷できます。
したがって、www.ermj.com.br/teste/home.php にアクセスすると、Codigo = e:/home/example/Web/teste/home.phpが出力されます。しかし、ファイルはe:/home/example/Web/ermj/teste/home.phpにあります。
変数 %{SCRIPT_FILENAME} がセカンダリ ドメイン フォルダーを抑制しているのはなぜですか? どうすれば修正できますか?