2013-04-15 176 views
1

我有2個主頁。它的工作原理是這樣的,Apache和Url重寫

<html> 
    <body> 
    <div id='menu'></div> 
    <div id='content'><?PHP require("content.php"); ?></div> 
    </body> 
</html> 

然後,content.php從網址中拉出「頁面」,並通過「好網頁」的網址進行檢查。如果沒有,則有一個默認值。不管怎樣,典型的URL看起來像這樣

  • /index.php?page=user & ID = 1
  • /?頁=組& ID = 3

我試圖讓它看起來像這樣

  • /用戶/ 1
  • /組/ 3

這是我對我的.htaccess文件,它不工作100%。它拉動正確的頁面,但css文件似乎沒有上傳。它位於主目錄中的/ css /中作爲索引和內容。

編輯

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^(.*)/(.*)$ /index.php?page=$1&id=$2 [L] 

我想申請成爲擴展能力如果可能的話。
謝謝!

+0

當書面方式重寫規則,第一部分是部分'catched',第二部分是'「轉型」'。但是如果你想使用像'group'或'id'這樣的變量,你必須做一個更好的正則表達式來提取第一部分的信息。 '^ * $ /'在一個變量中檢索從開始到結束的任何內容,這不是你想要的。你必須分別提取組和id。 – MatRt

回答

1

您將要使用是絕對路徑你的CSS,或者對它使用base href,或者如果路徑從根域開始,你可以在路徑前加上一個/

你的.htaccess是好的,但可能需要一些輕微的調整:

RewriteEngine On 
RewriteRule ^(\w)/([0-9]+)/$ /index.php?page=$1&id=$2 [L,QSA] 
+0

啊。弄清楚了。謝謝! –

+0

現在,如果我嘗試從一個頁面到一個頁面,它說/ home/user/1,但我只想去用戶頁面? –

+0

同樣,與CSS一樣,確保您在鏈接之前使用絕對鏈接或'/',或者在您的''中指定'base href'。領先的'/'可能是最好的選擇。 –

0

請嘗試以下代碼在.htaccess

RewriteEngine On 
RewriteRule ^user/([0-9]+)/$ /index.php?page=user&id=$2 [L,QSA] 
RewriteRule ^group/([0-9]+)/$ /index.php?page=group&id=$2 [L,QSA] 
+0

我個人將初始匹配正則表達式限制爲'(user | group)'。 –

0

請嘗試用下面的代碼可以在$_GET['page']得到的值。然後,你可以通過/分割值,然後可以得到你的用戶名,身份證等

RewriteEngine On 
RewriteBase /project/ 
RewriteRule ^([A-Za-z0-9]+){0,1}$ index.php?page=%{REQUEST_URI} [L,NC,QSA] 

在上面的代碼,你可能希望將/project//取代。這將很好地工作

0

試試這個的.htaccess代碼

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^(.*)/(.*)$ /index.php?page=$1&id=$2 [L] 

現在你可以直接通過訪問你的網頁..

www.yourdomain.com/user/1 
www.yourdomain.com/group/3 
+0

有時候,不需要身份證。像頁面=家 –

+0

所以不要通過身份證只是做'家/' –

+0

好吧,好像我的CSS文件沒有上傳。有任何想法嗎?我編輯了我的主要帖子。 –