辅助域中的.htaccess问题

时间:2013-10-25 17:11:47

标签: apache .htaccess

长文本传入以解释一切(无法发布许多链接。但所有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.php

www.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}正在压制辅助域文件夹?我该如何解决?

0 个答案:

没有答案