2016-11-12 45 views
0

我正在处理我的网站链接体系结构。我想重定向我的.htaccess已重写的URL到一个新的,以保持我的传入链接活动。将重写的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] 
+0

目前还不清楚你问什么。请明确说明传入的请求是什么以及内部应该调用哪个最终目标。 – arkascha

+0

对不起,但这些“to”语句是不明确的,不同的人从不同的侧面看“重写”一词。所以再一次:接收到的请求是什么,内部目标是什么? – arkascha

+0

对不起,您收到的请求是什么意思?直到现在,website.com/models.php被重写为website.com/profile-info,但现在我希望将website.com/profile-info重定向到website.com/profile。 – casusbelli

回答

1

我认为这是你在找什么:

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

这是一个两步策略:

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

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


而且一般提示:你应该总是喜欢在http服务器主机配置,而不是使用.htaccess样式文件中这样的规则。这些文件出了名的错误容易出错,难以调试,而且他们真的放慢了服务器速度,通常没有理由。他们仅适用于你的情况而不是可以访问主机配置(阅读:真正便宜的主机提供商),或者如果应用程序需要编写自己的规则(这是一个明显的安全噩梦...)。

+1

对不起,但我真的不能看到上述问题的连接。什么改变到什么其他的URL和什么“似乎没有工作”是什么意思?我建议你为此发布一个单独的问题... – arkascha

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]