繁体   English   中英

是否有处理301重定向和URL重写的正确顺序?

Is there a proper order for processing 301 redirects and URL re-writes?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

好的,情况就是这样。 我有example.com/old-url.php作为一个示例,我最终希望成为example.com/new-url/

由于我是在网站上的多个页面上执行此操作,因此我首先删除了PHP扩展名,并对所有请求都强制使用斜杠,如下所示:

RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
RewriteRule (.*)\.php$ /$1/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(.+)/$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^(.*)/$ $1.php [L]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .*[^/]$ $0/ [L,R=301]

对于某些页面,仅此而已。 对于其他页面,例如上面的示例,我将需要再执行一步。 因此,我将old-url.php重命名为new-url.php并创建一个附加的301重定向,如下所示:

Redirect 301 /old-url/ http://www.example.com/new-url/

但这是正确的方法吗? 这样做是更好的做法:

Redirect 301 old-url.php http://www.example.com/new-url.php

只需将301放在URL重写之前? 甚至:

Redirect 301 old-url.php http://www.example.com/new-url/

似乎可以通过几种方法进行设置,而我只是想知道这是否真的很重要或者哪个是最佳的。

提前致谢。

1 个回复

一个应该在内部路由规则之前保留外部重定向。 mod_rewrite规则与mod_alias规则混合使用也不是一个好主意。

这是正确的顺序:

RewriteRule ^old-url/?$ /new-url/ [L,NC,R=301]

RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
RewriteRule ^(.+?)\.php$ /$1/ [L,R=301]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .*[^/]$ $0/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(.+)/$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^(.*)/$ $1.php [L]
1 url重写后的301重定向

我做了一些 htaccess URL 重写。 为了保持我的谷歌排名,我必须将旧 URL 重定向到新 URL; 问题是旧 URL 仍然“存在”,我不知道如何进行重定向。 这是一个例子: 旧网址:mypage.php?id=myId 现在改写为:mypage-myId.html 这是 htacces ...

2 301重定向到重写的URL

我正在尝试通过.htaccess对重写的URL进行301重定向,但没有运气。 301重定向适用于当前不存在的页面,但不适用于实际页面。 例如,以下工作: 但是,这不是: 谢谢 ...

3 301重定向重写的URL

我正在尝试重定向一些重写的​​URL,但是当重定向有效时,它包括重写前的原始参数。 例如,重定向/used-cars.html http://www.odins.co.uk/our-cars.html 重写的URL基于以下结构: 但是,发生的事情是这样的: .htac ...

4 301重定向到重写的URL

我正在使用的CMS具有以下重写规则: 对于标签: 对于类别页面: 但是它不会重定向到seo友好的url estructure,从而造成重复的内容问题,我该怎么做,所以如果从其他目录访问,它也会重定向到301重写的url? 提前致谢 ...

6 301重定向与重写

我有一个由其他人托管的网站,所有网页都是.html文件。 我现在主持该网站,并已将其更改为wordpress网站。 该域名没有改变,但显然所有页面都有。 将所有.html页面重定向到主URL的最佳方法是什么? ...

8 由于URL重写导致301重定向问题

我使用CMSMadeSimple(基于PHP)进行了新的站点设置,但是我遇到了问题301使用新设置重定向旧站点URL。 我正在使用CMS的标准.htaccess文件,它将SEO友好的URL(如http://www.example.com/test.html)转换为http://www.ex ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM