2010-12-16 101 views
0

我想知道如何使用mod_rewrite重寫下面的URL?有沒有一個在線教程,解釋mod_rewrite傻瓜?Mod重寫2部分問題

如何重寫此URL。

http://www.example.com/sitemap.php 

http://www.example.com/sitemap.xml 
+1

Dupe of http://stackoverflow.com/q/4457835/52721。 @sleep - 你剛剛問過這個問題。繼續努力吧,我們不會在這裏遇到麻煩。 – Robert 2010-12-16 08:42:03

+0

@Robert:我投票結束,但這篇文章自那時以來一直受到關注,所以我將其標記爲mod評論,並建議將這兩個問題合併。 – AgentConundrum 2010-12-16 09:27:04

+0

夠公平的。我認爲,合併是真的要走的路。 – Robert 2010-12-16 09:28:09

回答

2
RewriteRule sitemap.php sitemap.xml 

這應該做到這一點。

+0

這不起作用 – HELP 2010-12-16 08:45:32

+0

當我測試它時工作......您可能需要在上面添加'RewriteEngine On',如果您將它放入.htaccess文件 – 2010-12-16 08:51:36

+0

它的上,但它仍然不工作,它根本不顯示xml數據 – HELP 2010-12-16 08:54:20

2

對此有幾個選項,具體取決於您希望如何工作。

最簡單的方法來重定向一個文件到另一個是簡單地使用Redirect指令:

Redirect /sitemap.php http://www.example.com/sitemap.xml 

默認將做302重定向,但你可以通過添加狀態代碼將其更改爲301作爲第一個參數,即:

Redirect 301 /sitemap.php http://www.example.com/sitemap.xml 

在這兩種情況下,這將導致往返返回給瀏覽器,這樣地址欄會改變以顯示新的文件名sitemap.xml。如果你不希望出現這種情況,你可以使用RewriteRule指令:

RewriteRule ^sitemap.php$ /sitemap.xml [L] 

注意,這是你將如何寫從所謂的「按目錄中,」這只是意味着該規則是規則從.htaccess文件或<Directory>塊中寫入。如果您是從主配置中編寫它,那麼您需要一個前導斜槓(即^/sitemap.php$)來表明規則要與文檔根匹配。

+0

這不起作用 – HELP 2010-12-16 08:46:00