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

时间:2016-11-12 09:32:55

标签: .htaccess redirect mod-rewrite url-rewriting

我正在开发我的网站链接架构。我想将我的.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 / 重定向到新网址: / profile / 。我最终得到了这段代码。但是,它会将 / profile / 重定向到 / profile-info /

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

2 个答案:

答案 0 :(得分:1)

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

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]

答案 1 :(得分:1)

我认为这就是你要找的东西:

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

这是一个两步策略:

  1. 重定向" old"指向/profile-info到新/profile
  2. 的链接
  3. 在内部将/profile重写为models.php
  4. 您可能需要更改RewriteMap,这显然取决于您的情况。

    一般提示:您应该始终更喜欢将此类规则放在http服务器主机配置中,而不是使用.htaccess样式文件。这些文件非常容易出错,难以调试,并且它们确实会使服务器变慢,通常没有理由。它们仅适用于可以访问主机配置(读取:非常便宜的主机提供商)或者应用程序需要编写自己的规则(这是一个明显的安全噩梦)的情况。 ..)。