我在我的网络空间中设置了多个域名(全部通过托管服务提供商)
所以www.maindomain.example
链接到/maindomain
我的网络空间。www.domain2.example
链接到/domain2
我的网络空间。到目前为止非常简单。
但是,只要我将另一个文件夹放入其中一个目录,folder
该域本身就会再次被提及URL
。
想象一下……我test
里面有一个文件夹maindomain
。在这种情况下,这个文件夹的 URL 不是,www.maindomain.example/test
而是www.maindomain.example/domain2/test
。因此,maindomain
URL 中重复的目录名称。
这是为什么? 有没有办法通过mod_rewrite
和来消除这种情况.htaccess
?
我在.htaccess
我的
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/maindomain/
RewriteCond %{DOCUMENT_ROOT}/maindomain%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/maindomain%{REQUEST_URI} -d
RewriteRule ^(.*)$ /maindomain/$1 [L]
但是,由于我不是服务器专家,所以我无法弄清楚这实际上意味着什么。
答案1
第一个RewriteCond
检查 uri 是否不以 开头/maindomain/
。
第二和第三检查该文件是作为普通文件还是作为目录存在。
然后,如果所有条件都满足,则将重写内容添加/maindomain/
到已经存在的 URL 中。
现在来看看你的问题。你有目录{DOCUMENT_ROOT}/maindomain/test/
,并希望它可以从 访问www.maindomain.com/test
。这行额外的代码可以完成这项工作。将其插入略低于 RewriteEngine On
:
RewriteRule ^test/(.*)$ /maindomain/test/$1 [L]
这将接受以 开头的任何 URI /test/
,并将其重定向到/maindomain/test
。该[L]
部分的意思是,停止这到这里重定向一轮(并且不评估下面的四行)并开始新一轮。
注意:这没有经过测试(因为我无法访问您的系统)。URL 重写通常需要进行一些测试才能正确完成。StackOverflow 不是为您提供支持的合适媒介。您需要学习自己进行 URL 重写或者雇佣了解该知识的人。