Bos*_*ova 3 apache subdomain .htaccess mod-rewrite url-routing
我在我的网络主机上设置了一个子域,如下所示:
en.domain.com pointing to the folder /en/
Run Code Online (Sandbox Code Playgroud)
但是当在地址栏中输入“en.domain.com”时,URL变为
domain.com/en/
Run Code Online (Sandbox Code Playgroud)
如果我进一步导航,假设文件夹“aaa”,URL 就会变成
domain.com/en/aaa/
Run Code Online (Sandbox Code Playgroud)
有没有办法让子域名保留在地址栏中,如下所示?:
en.domain.com/aaa/
Run Code Online (Sandbox Code Playgroud)
我尝试了一切,但没有人能帮助我。经过大量研究后,我发现了这一点并且它对我有用。所以这是我自己的答案,可能会帮助其他人寻找同样的东西。
这将使显示子域(“en.domain.com”)的 URL 在地址栏中不会更改,即使有人输入“domain.com/en/”,它也会将 URL 重写为“en.domain.com”。 com”:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteRule ^en(/(.*))? http://en.domain.com/$2 [QSA,L,R=301]
Run Code Online (Sandbox Code Playgroud)
这将破坏您网站的路径,导致样式和图像不会显示。因此,您需要根据网站结构中每个页面的位置,将其放入网站每个页面的 HTML 代码中:
对于文件夹“en”中的页面:
<head>
<base href="http://domain.com/en/" />
</head>
Run Code Online (Sandbox Code Playgroud)
对于文件夹“aaa”中的页面:
<head>
<base href="http://domain.com/en/aaa/" />
</head>
Run Code Online (Sandbox Code Playgroud)
对于文件夹“bbb”中的页面:
<head>
<base href="http://domain.com/en/aaa/bbb/" />
</head>
Run Code Online (Sandbox Code Playgroud)
不客气!:-)
| 归档时间: |
|
| 查看次数: |
8713 次 |
| 最近记录: |