2010-12-03 99 views
0

我一派,看着stackover流,但我沒能真正理解的答案如何使用htaccess來偶然的URL ...?

我,M不是要重定向,但改變URL格式

我想改變這些到新網址

www.site.com/abc.php到www.site.com/ (我的索引頁目前有我的登錄頁面,所以我不能使用的index.php)

www.site.com/ abc.php#123.php到www.site.com/123.php

UPDATE:

好了,我該怎麼做,那麼

www.site.com/abc.php到www.site.com/abc/

,這樣,當一個散列鏈接存在它看起來像

www.site.com/abc/#123.pho

,或者如果可能的

www.site.com/abc/#123/

+2

如果瀏覽器看到與它#fragment一個URL,區段部分永遠不會被髮送到服務器,所以你不能這樣做基於它 – Gareth 2010-12-03 11:28:43

回答

0

除了對方的回答對重定向,如果你想要更高級的轉發您可以使用Apache RewriteEngine敘述模塊。 然後,您可以使用正則表達式,其中可能包含子模式。

來自我網站的示例中,我將所有內容從博客導入wordpress後創建了模式。每當有人訪問的URL像http://www.twistedmind.nu/2006_03_01_archive.html他會被重定向到http://twistedmind.nu/2006/03

RewriteEngine敘述上 RedirectMatch 301(([0-9] *)_([0-9] *)_([0-9] ) ()(HTML))$○一二三七二八二六九四一七二四○五五三二一○$ 2/$ 3/ RedirectMatch 301(([0-9] )(。)(HTML))$○一二三七二八二六九四一七二四○五五三二一○$ 1

基於對方的回答,您不能匹配哈希標籤#後的所有內容。

其他例子(評論後加入):(。*)。

RedirectMatch 301 PHP $ 1 $ http://www.mysite.com/

這應該從各個環節剝離PHP擴展,新的鏈接(withouth的.PHP)應該存在。

如果你想創建'virtual'urls來重定向mysample到mysample.php,你可以使用mod_rewrite。有關說明,請參閱http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

+0

小紙條,改寫目前並不在我的網站的工作,我覺得以前,我的htaccess的文件丟失了一些時間。 – Gerbrand 2010-12-03 12:34:24

0

只能爲第一個url使用.htaccess。

Redirect /abc.php http://www.site.com/ 

第二個URL無法使用.htaccess重定向。 您可以使用JavaScript爲:

<script type="text/javascript"> 
    if (location.hash == "123") 
     location.href = location.hash+".php"; 
</script> 
+0

任何處理服務器端我不看重定向,但而是改變網址的外觀。 – Eli 2010-12-03 12:32:42