将静态网站映射到新URL但使用相同的文件?

时间:2016-08-11 00:33:48

标签: php html url-rewriting

我有一个静态网站,说它的URL是:

http://website.com

及其文件路径:

/path/to/website/

我想将此目录中的相同文件/文件夹提供到新目录中,并将css文件添加到其文件末尾<head>;

因此,为了在新样式上显示它,我希望它的URL如下:

http://website.com/new-style/1/
http://website.com/new-style/2/
http://website.com/new-style/3/
....

从原始目录提供的html / css / js文件:

/path/to/website/
+
/path/to/website/new-style/1/style.css
                 ^--------------------
/path/to/website/new-style/2/style.css
/path/to/website/new-style/3/style.css

我该怎么做?

是否需要进行服务器端重写?

我可以使用PHP和Apache作为网络服务器。

1 个答案:

答案 0 :(得分:1)

使用PHP文件而不是HTML

//index.php
<html>
<link rel="stylesheet" type="text/css" href="css/style<?php print $_GET['style'];?>">
...
</head>
<body>
...

然后在你.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /path/to/website/

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^new-style/([0-9]+)/(.*)\.html$ /$2\.php?style=$1 [QSA,L]
</IfModule>

最后一行将html扩展名重命名为PHP

编辑(因为它可能不是很清楚):最后一行并没有真正重命名地址中的html页面,只是将它们解释为它们为PHP。< / p>