将URL从www.domain.com/folder重写为folder.domain.com

时间:2018-02-13 12:56:55

标签: .htaccess

我的网站由根目录组成,其中包含index.html +包含多个文件的多个文件夹。

我希望重写网址,例如:

http://example.net is rewritten to http://www.example.net

(并显示我的根文件夹的index.html文件)

http://www.example.net/folder/file.html is rewritten to http://folder.example.net/file.html

(并显示文件" file.html"我的"文件夹"目录)

(当然它适用于我的所有文件夹和这些文件夹中包含的所有文件!)

谢谢你, 克里斯。

1 个答案:

答案 0 :(得分:0)

我设法做到这两点。但是,我的所有内部链接都不起作用(链接到其他页面,图像位置,css文件位置)。

这是htaccess:

# Redirect non-www to www:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^([^.]+).example.net$ [NC]
RewriteCond %{REQUEST_URI} !%1
RewriteRule ^(.*)$ /%1/$1 [L]

我的网站结构为:

/          <-- only index.html (and .htaccess ;-)
/images/   <-- where all images are stored
/css/      <-- where all css are stored
/folder1/  <-- folder which files can be accessed as folder1.example.net/file.html
/folder2/  <-- folder which files can be accessed as folder2.example.net/file.html

在我的file.html文件中,位于/ folder1 /目录中,css文件称为:

<link rel="stylesheet" type="text/css" "../css/main.css" title="Normal" />

与插入的图像相同:

<img src = "../images/mylovelyimage.png" alt = "A beautiful picture" />

和一个链接称为:

<a href = "../folder1/file2.html" title = "second page">Link</a>

似乎未加载css,图片未显示,链接指向http:// folder1 .example.net / folder1 /file2.html (而不是http://folder1.example.net/file2.html

可以在.htaccess文件中更正吗?