2011-06-03 103 views
0

我有一個關於url重寫的簡短問題...有一點幫助在URL重寫,請!

我有一個網站。比方說,http://www.example.com/

一些子網站:

http://www.example.com/a.php 
http://www.example.com/b.php 

等等

和像

http://www.example.com/c.php?i=1#link1 
http://www.example.com/c.php?i=1#link2 
http://www.example.com/c.php?i=2#link1 

現在的一些 「特殊」 的網址,我想編寫一個.htaccess文件將目前的網址轉換爲改寫的網址,例如

http://www.example.com/a/ 
http://www.example.com/c/1/#link1 

我不是網址重寫的專家,所以有人可以幫我嗎?

最好的reagards。

+0

當問一個URL重寫問題時,如果你提供一些輸入 - 輸出對,這是最有用的。一個具體的例子,一般的規則,用簡單的英語來說是很好的。 – 2011-06-03 21:59:48

回答

1
RewriteRule ^a$ a.php [L] 

RewriteRule ^c/(.*)/(.*) c.php?i=$1$2 
+0

也許有點更一般(沒有a.php和c.php)? – human 2011-06-03 21:43:34

1
Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 
RewriteBase/
RewriteRule ^a.php a/ 
RewriteRule ^b.php b/ 

應儘可能的靜態頁面去工作,你可以不寫,因爲哈希散列不被髮送到服務器(如討論here)。如果您需要重新編寫散列,我會建議將散列更改爲另一個GET變量(例如u),在這種情況下,只需將其添加到您的htaccess:RewriteRule ^c.php?i=(.*)&u=(.*) c/$1/$2。如果你只是想離開錨點,你可以從你的重寫中忽略它,一切都應該沒問題(因爲服務器從來沒有看到哈希/磅符號),在這種情況下,你應該將它添加到你的代碼RewriteRule ^c.php?i=(.*) c/$1/

+0

RewriteRule^b.php b /這個規則是幹什麼的? – 2011-06-03 22:05:25

+0

他說他有一些靜態頁面,並引用'http:// www.example.com/a.php'和'http:// www.example.com/b.php'爲例。我只是徹底地告訴他如果他有另外一頁,他可以重寫。 – Tomas 2011-06-05 00:39:18