2011-09-02 81 views
0

我正在處理一些在我的htaccess文件中重寫和重定向。我這樣做的原因是因爲我開發一個現有的網站,因此我需要重定向到保持保持在谷歌排名等在htaccess文件中動態重寫

所以舊的(現有的)URL看起來像這樣的新設計和佈局:

/news/internet-shopper-numbers-continue-to-grow-$21378232.htm 

和新的URL看起來是這樣:

/industry-news/small-business-website-design/internet-shopper-numbers-continue-to-grow/800715788 

在舊的URL internet-shopper-numbers-continue-to-grow是動態生成的,其中作爲新的URL small-business-website-designinternet-shopper-numbers-continue-to-grow800715788都動態生成。

所以我的問題是如何從1個URL到另一個如果只有1個動態生成的變量可用。

我想也許這是一個好主意,做一個PHP重定向,而不是我可以通過數據庫從URL過程中獲取數據來獲取生成新的URL所需的所有數據,但我不知道如果這是很好的做法,這也意味着必須匹配舊的URL文件目錄,這不是目前的情況。

我猜我開始是這樣的:

Options +FollowSymlinks 
RewriteEngine On 
RewriteCond /news/%{QUERY_STRING}(.)(\\d+)(.)(htm)$ 
RewriteRule ^industry-news/(.+)/%1/(\d{9}) 

我知道這是很基本的,有點錯了,但我工作的這是第一次,我很爲難。

- 額外問題 -

我能做這樣的事情嗎?

RewriteCond /new/%{QUERY_STRING}(.)(\\d+).htm$ 
RewriteRule ^industry-new/article/article.php?direct=%1 

我不知道如何去測試這些真的,但會工作嗎?

+0

這是一個教程:http://www.sitepoint.com/guide-url-rewriting/ – Rijk

+0

謝謝,我給了這個閱讀,我只來到這裏,因爲我已經通過這麼多的教程,並沒有找到什麼即時尋找 – lukehillonline

回答

1

是的,這絕對是一個好主意,在php中做所有重定向的東西。只要有一個簡單的「一攬子」的.htaccess

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php 

然後變換網址,只要你想在PHP並在必要時發送位置標頭。爲「舊」網址添加301狀態代碼可能是一個好主意。

+0

我肯定會讓他們301,只是試圖讓我的頭在主要代碼現在,所以我可能仍然採取%{QUERY_STRING}索引文件,將其拉出,然後用作數據庫變量? – lukehillonline