.htaccess 将多个 url 重定向到相应的新页面
.htaccess redirect multiple urls to their corresponding new pages
我想使用 .htaccess 重定向以下网址:
/books/garden 到 /花园书籍
/movies/dvd-comedy到/dvd/comedy
/music-soundtracks/new到/music/soundtracks
有人知道怎么做吗?
将此添加到站点根目录中的 .htaccess 文件中。
RewriteEngine On
RewriteCond %{THE_REQUEST} \ /+(books)/(garden)\s [NC]
RewriteRule ^ /%2-%1 [R=301,L]
RewriteRule ^(garden)-(books)/?$ // [NC,L]
RewriteCond %{THE_REQUEST} \ /+movies/(dvd)-(comedy)/?[\s?] [NC]
RewriteRule ^ /%1/%2 [R=301,L]
RewriteRule ^(dvd)/(comedy)/?$ /movies/- [NC,L]
RewriteCond %{THE_REQUEST} \ /+(music)-(soundtracks)/new/?[\s?] [NC]
RewriteRule ^ /%1/%2 [R=301,L]
RewriteRule ^(music)/(soundtracks)/?$ /-/new [NC,L]
是的,这是可能的,但您需要考虑这一点:如果您的实际 URL 是,比方说,/page.php?var=val
,而您漂亮的 URL 是 /page/var/val
,那么上述规则确保不仅漂亮的版本 /page/var/val
有效,而且如果有人试图访问实际的 /page.php?var=val
他们也会被重定向回 /page/var/val
。
因此,如果您只对解析漂亮的 URL 感兴趣,则只能使用以下内容。
RewriteEngine On
RewriteRule ^(garden)-(books)/?$ // [NC,L]
RewriteRule ^(dvd)/(comedy)/?$ /movies/- [NC,L]
RewriteRule ^(music)/(soundtracks)/?$ /-/new [NC,L]
如果你想要一个更简单的解决方案,你也可以试试这个:
Redirect 301 /books/garden /garden-books
Redirect 301 /movies/dvd-comedy /dvd/comedy
Redirect 301 /music-soundtracks/new /music/soundtracks
旧的url在"Redirect 301"之后,然后是新的url。
我想使用 .htaccess 重定向以下网址:
/books/garden 到 /花园书籍
/movies/dvd-comedy到/dvd/comedy
/music-soundtracks/new到/music/soundtracks
有人知道怎么做吗?
将此添加到站点根目录中的 .htaccess 文件中。
RewriteEngine On
RewriteCond %{THE_REQUEST} \ /+(books)/(garden)\s [NC]
RewriteRule ^ /%2-%1 [R=301,L]
RewriteRule ^(garden)-(books)/?$ // [NC,L]
RewriteCond %{THE_REQUEST} \ /+movies/(dvd)-(comedy)/?[\s?] [NC]
RewriteRule ^ /%1/%2 [R=301,L]
RewriteRule ^(dvd)/(comedy)/?$ /movies/- [NC,L]
RewriteCond %{THE_REQUEST} \ /+(music)-(soundtracks)/new/?[\s?] [NC]
RewriteRule ^ /%1/%2 [R=301,L]
RewriteRule ^(music)/(soundtracks)/?$ /-/new [NC,L]
是的,这是可能的,但您需要考虑这一点:如果您的实际 URL 是,比方说,/page.php?var=val
,而您漂亮的 URL 是 /page/var/val
,那么上述规则确保不仅漂亮的版本 /page/var/val
有效,而且如果有人试图访问实际的 /page.php?var=val
他们也会被重定向回 /page/var/val
。
因此,如果您只对解析漂亮的 URL 感兴趣,则只能使用以下内容。
RewriteEngine On
RewriteRule ^(garden)-(books)/?$ // [NC,L]
RewriteRule ^(dvd)/(comedy)/?$ /movies/- [NC,L]
RewriteRule ^(music)/(soundtracks)/?$ /-/new [NC,L]
如果你想要一个更简单的解决方案,你也可以试试这个:
Redirect 301 /books/garden /garden-books
Redirect 301 /movies/dvd-comedy /dvd/comedy
Redirect 301 /music-soundtracks/new /music/soundtracks
旧的url在"Redirect 301"之后,然后是新的url。