微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

htaccess 从旧网址重定向到新网址

如何解决htaccess 从旧网址重定向到新网址

我试图在 htaccess 中从旧网址重定向到新网址,这是我的代码/尝试/尝试,但没有任何运气。

旧网址 - https://www.rosterelf.com/blog/why-i-always-hire-for-attitude-over-skill-usually

新网址 - https://www.rosterelf.com/blog/why-i-always-hire-attitude-over-skill-usually

.htaccess 代码尝试 1

RedirectMatch 301 ^/blog/why-i-always-hire-for-attitude-over-skill-usually /blog/why-i-always-hire-attitude-over-skill-usually

我还有其他几个 301 重定向,但即使我评论了这些,上述条件也不起作用,因此请相信其他条件没有问题。

这是我的完整 htaccess 代码

<IfModule mod_rewrite.c>

    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    ##
    ## You may need to uncomment the following line for some hosting environments,## if you have installed to a subdirectory,enter the name here also.
    ##
    # RewriteBase /

    ##
    ## Uncomment following lines to force HTTPS.
    ##
    # RewriteCond %{HTTPS} off
    # RewriteRule (.*) https://%{SERVER_NAME}/$1 [L,R=301]

    ##
    ## Allow robots.txt
    ##
    RewriteRule ^robots.txt - [L]

    ## 301 redirect for old support details page url to new one 
    ## OLD URL https://www.rosterelf.com/support-detail/1903/how-can-employees-clock-inout-of-time-clock-different-slug 
    ## NEW URL https://www.rosterelf.com/support-detail/how-can-employees-clock-inout-of-time-clock-different-slug 
    
    RewriteRule ^(support-detail)/\d+/([\w-]+)/?$  /$1/$2 [R=301,NC,L]
    RewriteRule ^blog-detail/\d+/([\w-]+)/?$ /blog/$1 [R=301,L]
    RedirectMatch 301 ^/blog/why-i-always-hire-for-attitude-over-skill-usually /blog/why-i-always-hire-attitude-over-skill-usually

    ##
    ## Black listed folders
    ##
    RewriteRule ^bootstrap/.* index.PHP [L,NC]
    RewriteRule ^config/.* index.PHP [L,NC]
    RewriteRule ^vendor/.* index.PHP [L,NC]
    RewriteRule ^storage/cms/.* index.PHP [L,NC]
    RewriteRule ^storage/logs/.* index.PHP [L,NC]
    RewriteRule ^storage/framework/.* index.PHP [L,NC]
    RewriteRule ^storage/temp/protected/.* index.PHP [L,NC]
    RewriteRule ^storage/app/uploads/protected/.* index.PHP [L,NC]

    ##
    ## White listed folders
    ##
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_FILENAME} !/.well-kNown/*
    RewriteCond %{REQUEST_FILENAME} !/storage/app/uploads/public/.*
    RewriteCond %{REQUEST_FILENAME} !/storage/app/media/.*
    RewriteCond %{REQUEST_FILENAME} !/storage/app/resized/.*
    RewriteCond %{REQUEST_FILENAME} !/storage/temp/public/.*
    RewriteCond %{REQUEST_FILENAME} !/themes/.*/(assets|resources)/.*
    RewriteCond %{REQUEST_FILENAME} !/plugins/.*/(assets|resources)/.*
    RewriteCond %{REQUEST_FILENAME} !/modules/.*/(assets|resources)/.*
    RewriteRule !^index.PHP index.PHP [L,NC]

    ##
    ## Block all PHP files,except index
    ##
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_FILENAME} \.PHP$
    RewriteRule !^index.PHP index.PHP [L,NC]

    ##
    ## Standard routes
    ##
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.PHP [L]

</IfModule>

有人可以指导我该怎么做才能实现这一目标。

谢谢

解决方法

根据您展示的示例,您能否尝试以下操作。

<IfModule mod_rewrite.c>

<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>

RewriteEngine ON
##
## You may need to uncomment the following line for some hosting environments,## if you have installed to a subdirectory,enter the name here also.
##
# RewriteBase /

##
## Uncomment following lines to force HTTPS.
##
# RewriteCond %{HTTPS} off
# RewriteRule (.*) https://%{SERVER_NAME}/$1 [L,R=301]

##
## Allow robots.txt
##
RewriteRule ^robots.txt - [NC,L]

## 301 redirect for old support details page url to new one 
## OLD URL https://www.rosterelf.com/support-detail/1903/how-can-employees-clock-inout-of-time-clock-different-slug 
## NEW URL https://www.rosterelf.com/support-detail/how-can-employees-clock-inout-of-time-clock-different-slug 

RewriteRule ^(support-detail)/\d+/([\w-]+)/?$  /$1/$2 [R=301,NC,L]
RewriteRule ^blog-detail/\d+/([\w-]+)/?$ /blog/$1 [R=301,L]
RewriteRule ^blog/why-i-always-hire-for-attitude-over-skill-usually /blog/why-i-always-hire-attitude-over-skill-usually [R=301,L]

##
## Black listed folders
##
RewriteRule ^(?:bootstrap|config|vendor|storage/(?:cms|logs|framework|temp/protected|app/uploads/protected))/ index.php [L,NC]


##
## White listed folders
##
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} !/.well-known/*
RewriteCond %{REQUEST_FILENAME} !/storage/app/uploads/public/.*
RewriteCond %{REQUEST_FILENAME} !/storage/app/media/.*
RewriteCond %{REQUEST_FILENAME} !/storage/app/resized/.*
RewriteCond %{REQUEST_FILENAME} !/storage/temp/public/.*
RewriteCond %{REQUEST_FILENAME} !/themes/.*/(assets|resources)/.*
RewriteCond %{REQUEST_FILENAME} !/plugins/.*/(assets|resources)/.*
RewriteCond %{REQUEST_FILENAME} !/modules/.*/(assets|resources)/.*
RewriteRule !^index\.php index.php [L,NC]

##
## Block all PHP files,except index
##
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} \.php$
RewriteRule !^index\.php index.php [L,NC]

##
## Standard routes
##
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

</IfModule>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。