我真的不知道如何在句子中描述我的问题,所以我将用一个例子来解释:
假设我有一个如下所示的文件夹结构:
/根
/root/clientfolder1/testfile.php
/root/clientfolder2/testfile.php
等...
并且testfile.php在所有子文件夹中都是相同的。
现在说我只是在所有子文件夹中推出了一个名为testfile2.php的新文件,所以现在testfile2.php存在于所有子文件夹中。
我添加了一个重定向,将旧的testfile.php指向新的testfile2.php
所以,在我的.htaccess中我添加了以下内容(是的,'RewriteEngine On'已在.htaccess文件中设置):
RewriteRule (.*)/testfile\.php /$1/testfile2.php [R=301,L]
好吧现在一切似乎都运行正常但是(这就是事情变得棘手)我的htaccess文件中我还有多个域的规则设置指向这样的特定文件夹:
RewriteCond %{HTTP_HOST} domain-one.com
RewriteCond %{REQUEST_URI} !^/clientfolder1
RewriteRule ^(.*)$ clientfolder1/$1 [L]
RewriteCond %{HTTP_HOST} domain-two.com
RewriteCond %{REQUEST_URI} !^clientfolder2
RewriteRule ^(.*)$ clientfolder2/$1 [L]
等...
我还有一个主(默认域名)用于我的主站点(root文件),我们称之为main-domain.com
以下是有效的:
domain-one.com/testfile.php
domain-one.com/testfile2.php
domain-two.com/testfile.php
domain-two.com/testfile2.php
main-domain.com/clientfolder1/testfile.php
main-domain.com/clientfolder2/testfile.php
现在这是我的问题/问题:
我在上面添加的新重定向用testfile2.php替换testfile.php会导致以下情况发生:
domain-one.com/testfile.php 重定向到: 的 main-domain.com/clientfolder1/testfile2.php
但是我需要它重定向到 domain-one.com/testfile2.php
我无法让这个工作......并且感到沮丧,因为我确信有一个简单的解决方案,我只是遗漏了一些明显的东西。可以这样做吗?
提前感谢您的帮助 - 非常感谢!!
答案 0 :(得分:1)
Apache完全遵循规则要求它做的事情。
RewriteCond %{HTTP_HOST} domain-one.com
如果域名是“domain-one.com”......
RewriteCond %{REQUEST_URI} !^/clientfolder1
...而URI 不以“/ clientfolder1”开头......
RewriteRule ^(.*)$ clientfolder1/$1 [L]
...然后使用“clientfolder1 /".
预先添加URI