的.htaccess - 重定向所有.HTML捕捉

问题描述:

我面临着以下问题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

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

请试试这个:

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