长文本传入以解释一切(无法发布许多链接。但所有ermj链接应该是实时的)
当我使用.htaccess文件时,我有一个奇怪的问题
为我的主域( www.example.com.br )设置了服务器根文件夹。我有一个辅助域名( www.ermj.com.br )指向该根目录中的文件夹 / ermj 。因此,当我在 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 /子文件夹即时实际访问 index.php?codigo = subfolder / ,它将显示索引文件的结果
Codigo = subfolder/
当我尝试访问 home.php 文件时出现问题
打印 Codigo = home.php index.php?codigo = home.php我发现我可以通过在地址
上写下ermj文件夹来访问home.phpwww.ermj.com.br/ermj/teste/home.php - 现在打印正确的内容 - home.php 就像突然,辅助域正在查看该文件的主域根文件夹。 .htaccess规则在这种情况下仍然有效
www.ermj.com.br/ermj/teste/subfolder/打印 Codigo =子文件夹/
父文件夹中没有其他.htaccess,如果.ttaccess已从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}正在压制辅助域文件夹?我该如何解决?