繁体   English   中英

将重写的URL重定向到新的重写的URL

[英]Redirect rewritten URL to a new rewritten URL

我正在研究我的网站链接体系结构。 我想用已经重写的.htaccess URL重定向到一个新的URL,以保持我的传入链接处于活动状态。

www.website.com/profile-info/www.website.com/profile/

这是我实际的工作.htaccess:

Options +FollowSymlinks -MultiViews
RewriteEngine On

RewriteCond %{REQUEST_URI} /profile-info/?$ [NC]
RewriteRule . models.php [L]

因此,为了将/ profile-info /重定向到新的URL: / profile / 我最终得到了这段代码。 但是,它将/ profile /重定向到/ profile-info /

RewriteCond %{REQUEST_URI} /profile/?$ [NC]
RewriteRule . /profile-info/ [L,R=302]

您可以使用以下2条规则:

Options +FollowSymlinks -MultiViews
RewriteEngine On

# redirect /profile-info to /profile
RewriteRule ^profile-info/?$ /profile [R=301,NE,L]

# rewrite /profile to /models.php
RewriteRule ^/?profile/?$ models.php [L,NC]

我认为这是您要寻找的:

RewriteEngine On
RewriteMap /
RewriteRule ^/?profile-info/?$ /profile [END,NE,R=301,QSA]
RewriteRule ^/?profile/?$ models.php [L,QSA]

这是一个两步策略:

  1. 将指向/profile-info “旧”链接重定向到新的/profile
  2. 内部将/profile重写为models.php

您可能需要更改RewriteMap ,这显然取决于您的情况。


还有一个一般提示:您应该始终喜欢将此类规则放在http服务器主机配置中,而不是使用.htaccess样式文件。 众所周知,这些文件容易出错,难以调试,并且它们确实使服务器变慢,通常是没有原因的。 仅在您无法访问主机配置的情况下提供它们(请参阅:真正便宜的主机提供商),或者在应用程序需要编写自己的规则的情况下(这显然是安全的噩梦...)。

暂无
暂无

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

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