2016-08-11 53 views
1

我有一個靜態的網站,說這是網址是:將靜態網站映射到新的URL,但使用相同的文件?

http://website.com 

及其文件路徑:

/path/to/website/ 

我想從這個目錄中相同的文件/文件夾投放到新的目錄,並添加只是一個css文件的結尾<head>;

因此,爲了顯示其在新的風格我想它的網址是這樣的:

/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 

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

與其HTML/CSS/JS文件從原來的目錄服務

我該怎麼做?

是否需要進行服務器端重寫或什麼?

我可以使用PHP和Apache作爲Web服務器。

+0

你的問題不是很清楚。你是什​​麼意思,你想要從目錄中提供相同的文件/文件夾到一個新的目錄? –

+0

我的意思是我不想將HTML文件複製/粘貼到新目錄中,我想在任何地方都使用它,因爲我可能稍後再編輯它們。所以,我不想再編輯它們! – Homer

+0

哦,我想我明白了。你想看3個不同的風格(使用CSS)的3個URL中的每一個相同的靜態網站。你說靜態,但如果你使用Apache這意味着你使用PHP的權利? –

回答

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。

+0

非常感謝託尼! – Homer

+0

但是,如果我使用'.php'擴展名,我需要將它們重寫爲'.html',而不是相反! – Homer

+0

你是什麼意思?你可以使用'.php'這樣的代碼工作,然後使用'.htaccess'文件來「假裝」它們是'.html'文件。 –

相關問題