Regex .htaccess:重定向而不更改url

Regex .htaccess:重定向而不更改url,regex,.htaccess,Regex,.htaccess,我想有一个URL被重定向到同一个域上的不同页面,但浏览器不改变URL。因此,页面www.mydomain.co.uk/tour/应该指向www.mydomain.co.uk/,但不要更改 我看过很多关于Stackoverflow的类似问题,但所有的解决方案似乎都改变了我的URL 代码: RewriteEngine On Options +FollowSymLinks RewriteCond %{REQUEST_URI} ^/tour RewriteRule ^(.*)$ http://www.m

我想有一个URL被重定向到同一个域上的不同页面,但浏览器不改变URL。因此,页面
www.mydomain.co.uk/tour/
应该指向
www.mydomain.co.uk/
,但不要更改

我看过很多关于Stackoverflow的类似问题,但所有的解决方案似乎都改变了我的URL

代码:

RewriteEngine On
Options +FollowSymLinks
RewriteCond %{REQUEST_URI} ^/tour
RewriteRule ^(.*)$ http://www.mydomain.co.uk/ [L] 

因为您在重写规则中提供了完整的URL,所以会自动将其视为重定向。将完整URL替换为斜杠,它应该可以工作,即:

RewriteCond %{REQUEST_URI} ^/tour
RewriteRule ^(.*)$ / [P] 
您甚至可以将其缩短为:

RewriteEngine on
RewriteRule ^/?tour.* / [P]

试着把[L]改为[p],我想它会起作用。

1-用[p]代替[L]

2-在第二行的末尾使用$s来创建一组URL重定向,并在其末尾删除/删除

代码如下所示:

RewriteCond %{REQUEST_URI} ^/tour
RewriteRule ^(.*)$ /$1 [P] 

它处理的不仅仅是文件夹浏览的索引页。

尝试删除域。也可以尝试使用
[P]
Awesome将[P]添加到下面的答案中,这难道不是已经被接受的问题答案刚刚说的吗?您应该告知像Apache一样启用mod_代理的风险谢谢!这也是让我难受的原因。有道理。当我尝试将
/fake url
重写为像
/new.php
这样的真实文件时,它会起作用,但当我尝试将
/fake url
重写为
/另一个假的
时,real是
索引。php
它会更改url。这与…完全相同,请重新检查,有$1符号!啊,我错了。我没有注意到变化。为了确保没有其他人犯同样的错误,我建议编辑您的答案,提及Michal的现有答案,以及为什么您的答案不同