2011-03-02 73 views
0

有人可以告訴我如何重寫這個URL。我看了很多關於計算器的問題,但他們似乎錯過了我的答案。如何重寫url?

RewriteEngine On 

這就是我...它有點可憐。

我需要重寫URL的,如果他們不指向一個目錄。

我需要這樣做......

any.domain.com/pages/some-page-slug/login

重寫才能正確網址...

any.domain.com/pages/login.php?page=32

有誰^ h就如何實現這一點提出任何想法?

+2

什麼是「一些頁段塞」和「頁= 32」之間的關係大文章? – 2011-03-02 08:45:30

+0

是'32'是靜態變量嗎? – 2011-03-02 08:45:36

回答

1

1)重寫product.php?ID = 12到產品12.html

它是一個簡單的重定向,其中PHP擴展被從瀏覽器的地址欄和動態URL(包含隱藏的「?」字符)被轉換爲靜態URL。

RewriteEngine on 
RewriteRule ^product-([0-9]+)\.html$ product.php?id=$1 

2)重寫product.php?ID = 12產品/ iPod的納米/ 12.html

SEO專家總是建議,以顯示在URL中的主要關鍵字。在以下URL重寫技術中,您可以在URL中顯示產品的名稱。

RewriteEngine on 
RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$2 

3)非重定向URL WWW到www網址

如果你在瀏覽器中鍵入yahoo.com它會被重定向到www.yahoo.com。如果你想做與你的網站相同的然後把下面的代碼.htaccess文件。這種重定向有什麼好處?請檢查關於SEO友好重定向(301)在PHP和.htaccess重定向的文章。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^optimaxwebsolutions\.com$ 
RewriteRule (.*) http://www.optimaxwebsolutions.com/$1 [R=301,L] 

4)重寫yoursite.com/user.php?username=xyz到yoursite.com/xyz

你檢查zorpia.com.If你在瀏覽器中鍵入http://zorpia.com/roshanbh233你可以在看我的個人資料那裏。如果您想要執行相同類型的重定向,例如http://yoursite.com/xyzhttp://yoursite.com/user.php?username=xyz,則可以將以下代碼添加到.htaccess文件。

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1 

5)將域重定向到public_html中的新子文件夾。

假設您已經重新開發了您的網站,並且所有新開發駐留在根文件夾內的「新」文件夾中。然後可以像訪問「test.com/new」那樣訪問網站的新開發。現在將這些文件移動到根文件夾可能是一個繁忙的過程,因此您可以在.htaccess文件內創建以下代碼並將其放在網站的根文件夾下。結果,www.test.com指出「新」文件夾中的文件。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^test\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.test\.com$ 
RewriteCond %{REQUEST_URI} !^/new/ 
RewriteRule (.*) /new/$1 
+1

這是從網上覆制的。請引用來源 – Gordon 2011-03-03 13:08:58

0

要做到這一點,你需要寫一個前端控制器。

參見here,hereherehere

或者在Apache中,你可以重寫這個

any.domain.com/pages/32/login

或本:

any.domain.com/32/login

甚至是這樣:

any.domain.com/some-slug/32/login

這樣:

any.domain.com/pages/login.php?page=32

以某種方式用apache來做到這一點,你需要以某種方式提供頁面id。請記住,即使使用any.domain.com/some-slug/32/login格式,slug的內容也是不相關的,並且不一定鏈接到正確的頁面。我認爲這是不可取的,對SEO不利。

另一個替代方案是使用RewriteMap。但是這將會非常棘手,並且只要創建/編輯頁/ slug就需要Apache配置。

0

我的理解是pageslogin在這種情況下是靜態的,some-page-slug正在發生變化。而你總是想重定向到靜態頁面/pages/login.php?page=32

因此,這是如何做到這一點:

1)改寫

RewriteEngine On 
RewriteRule ^pages/([a-zA-Z0-9_]+)/login(.*)$ /pages/login.php?page=32 

或2)重定向Pernament

RewriteEngine On 
RewriteRule ^pages/([a-zA-Z0-9_]+)/login(.*)$ /pages/login.php?page=32 [R=301,L] 

或3 )重定向臨時

RewriteEngine On 
RewriteRule ^pages/([a-zA-Z0-9_]+)/login(.*)$ /pages/login.php?page=32 [R=302,L] 

以下是有關htaccess的trics http://perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/