我想重写/index
我的子域和域中的所有索引文件。到目前为止,没有必要使用子域。现在问题是来自 htaccess 文件的重写规则。这将重写 URL,如下面的给定代码所示:
RewriteRule ^index\.(htm|html|php) http://%{HTTP_HOST}/ [R=301,L]
RewriteRule ^(.*)/index\.(htm|html|php) http://%{HTTP_HOST}/$1/ [R=301,L]
意味着在域中的所有索引文件都将被重写。这很好用,但在子域中不行。现在我想我可以简单地为我的子域添加一个条件,例如:
RewriteCond %{HTTP_HOST} !^subdomain\.example\.com$
RewriteCond %{HTTP_HOST} !^www\.
但这还好行不通。
在这里提供更多信息是 URL 的样子:
http://www.example.com/index
and the subdomain:
http://subdomain.example.com/index
使用上面的代码,URL 将是:
http://www.example.com/
and the subdomain:
http://subdomain.example.com/index
如果有人可以帮助我,那就太好了。
非常感谢。
更新:
为了提供更多信息,我需要解释事情是如何运作的。
在根目录中有子域的文件夹。
--> /index.php
--> /folderA
--> /subdomain
/root --> /folderB
--> /index.php
URL看起来像这样:
http://www.example.com/subdomain/folderA/index
和
http://subdomain.example.com/folderA/index
我确实使用了干净的 URL,因此它只是index
而不是index.php
等等。默认设置在调用页面时已经隐藏了 index.php。问题将是我何时更改语言,这意味着文件夹A 和文件夹B。因此,我读出了文件的基本名称并使用 header 函数重定向到正确的目录。主要问题是子域。在域中它运行良好。就在我从带有 URL 的文件夹中获得索引页时:
http://subdomain.example.com/folderA/(index will be hidden)
并将读出基本名称(=>index)并将标题指向:
http://subdomain.example.com/folderB/(index will be hidden)
就会出问题。URL 将以错误的方式重写。或者另一个简单的例子:
在所有页面上都有一个徽标按钮root/subdomain/folderA/
这个按钮只是一个链接:<a href="/index.php">...</a>
。页面 URL 将是:subdomain.example.com/folderA/filexy
单击该链接时,URL 将被重写为www.example.com/subdomain/folderA/