使用htaccess在不更改同一域中的URL的情况下重写

时间:2016-11-12 03:55:39

标签: php apache .htaccess mod-rewrite

我有两个网址
新网址:

  

http://host.ip.address/nl/business/producten-en-diensten/gsm-en-smartphones/samsung-galaxy-j1-2016-zwart

旧网址:

  

http://host.ip.address/nl/producten-en-diensten/gsm-en-smartphones/samsung-galaxy-j1-2016-zwart

在请求来自浏览器的新URL时,它应该从OLD URL检索内容,并且URL不应在浏览器中更改。 我在.htaccess中尝试了以下规则,它正在重写并重定向到OLD URL,在我的情况下不应该这样做

RewriteEngine on
RewriteRule (^|.*?/)nl/business/(.*)$ /$1nl/$2 [L,R=301]

1 个答案:

答案 0 :(得分:0)

无法进行重定向并将原始网址保留在地址栏中。"这是因为根据定义,重定向涉及告知浏览器在不同的URL处请求所请求的资源。因此浏览器会更新其地址栏并使用新的URL。

最简单的方法是使用重写,而不是重定向。内部重写只是提供来自本地文件路径的内容,该路径与请求的本地URL路径不同。

你可以使用像这样简单的东西。

RewriteEngine On
RewriteRule nl/producten-en-diensten/gsm-en-smartphones/samsung-galaxy-j1-2016-zwart nl/business/producten-en-diensten/gsm-en-smartphones/samsung-galaxy-j1-2016-zwart

您可能还需要添加

Options +FollowSymLinks