2016-04-27 57 views
1

我面臨着以下問題ID:的.htaccess - 重定向所有.HTML捕捉

我有一個網站,其中的網址目前的樣子:

/manufacturer/product/[ID].html 

我已經重新開發網站(使用Laravel),現在它只是:

/product/[ID] 

我想知道是否可以使用.htaccess文件重定向所有這些鏈接回新的鏈接?所以,實質上,我需要從舊鏈接捕獲[ID]並將其重定向回新鏈接。

編輯:

因此該鏈接將是這個樣子:

mysite.com/parts/apple/A-6-H0.htm 

OR

mysite.com/microsoft/A-1-5F.htm 

因此,無論AppleMicrosoftA-可以根據什麼製造商改變和什麼產品是否有意義?

+0

是您的htaccess內/製造文件夾? – starkeen

+0

@starkeen不,這是一個laravel項目.htaccess文件在裏面/公開 – Phorce

+0

「mysite.com/parts/apple/A-6-H0.htm」應該重定向到哪裏? – hjpotter92

回答

2
RewriteEngine On 
RewriteRule ^parts/(?:[^/]+/)?(.*)\.html?$ /parts/$1/ [R=301,L] 

這應該照顧它。

+0

它不工作,因爲有一個'/製造商'的方式..我需要忽略這..目前它將重定向從:'/ manufacturer/product/[ID] .htm':'/ manufacturer/product/[ID]'這樣的工作 – Phorce

+0

@Phorce如果'製造商'總是存在的(後面是產品),上面的代碼應該將您重定向到'/ product/ID'頁面,並且也會移除製造商! =) – hjpotter92

+0

對此感到抱歉。鏈接將是:/manufacturer/product/[ID].htm - 但製造商可能是蘋果,微軟等任何東西,所以我想完全刪除這個.. – Phorce

1

請試試這個:

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^{domain name}[nc] 
RewriteRule ^(.*)$ {domain name}/$1 [r=301,nc] 
Redirect 301 /manufacturer/product/$1.html product/$1.html 
+0

這給出了「內部服務器錯誤」 – Phorce

+0

mod-rewrite不適用於mod別名 – starkeen

+0

@mayank - 此外,它不會總是/ manufacturer /'/ manufacturer /'是一個變量..它可能是蘋果,微軟等。 – Phorce