.htaccess htaccess在不重定向的情况下加载页面B而不是页面A

.htaccess htaccess在不重定向的情况下加载页面B而不是页面A,.htaccess,.htaccess,使用.htaccess文件,当加载页面A时,如何加载页面B?我不想更改URL,它仍然应该显示页面A 示例:用户加载www.mysite.com/contact并获取www.mysite.com/contact-us 最好是,如何将多个URL重定向到同一位置?例如.com/A、.com/B和.com/C都加载.com/d的内容。有没有一种方法可以将这些内容组合在一起(与此解决方案相反:)这取决于您所指的组合。您可以匹配域之后的任何内容,并将其指向您真正想要的其他URL 比如说 RewriteEng

使用.htaccess文件,当加载
页面A
时,如何加载
页面B
?我不想更改URL,它仍然应该显示
页面A

示例:用户加载
www.mysite.com/contact
并获取
www.mysite.com/contact-us


最好是,如何将多个URL重定向到同一位置?例如
.com/A
.com/B
.com/C
都加载
.com/d
的内容。有没有一种方法可以将这些内容组合在一起(与此解决方案相反:)

这取决于您所指的组合。您可以匹配域之后的任何内容,并将其指向您真正想要的其他URL

比如说

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+) /d [L] 
这将匹配
www.site.com/A
www.site.com/B
www.site.com/C
,并重定向到
www.site.com/d
不更改URL

希望有帮助

编辑:

要回答您对特定URL的评论,如果您只想重定向
AB或C
,您可以这样做。简化的示例,但应该可以很好地工作

RewriteEngine on
RewriteRule ^(A|B|C)$ /d [L]
这将只匹配www.site.com/A或
www.site.com/B
www.site.com/C
,并重定向到
www.site.com/d
无需更改URL。

根据您的URL布局,我会选择以下内容:

RewriteCond %{REQUEST_URI} ^/(A) [OR,NC]
RewriteCond %{REQUEST_URI} ^/(B) [OR,NC]
RewriteCond %{REQUEST_URI} ^/(C) [OR,NC]
RewriteCond %{REQUEST_URI} ^/(E)
RewriteRule ^.*$ /d#%1 [L]
当然,您也可以在一行中完成:

RewriteCond %{REQUEST_URI} ^/(A|B|C|E) [NC]
RewriteRule ^.*$ /d#%1 [L]

重写模块附带的优秀手册中对此进行了详细解释…@d-ub您的列表中是否有任何模式彼此相同,您可以使用它们来匹配并重定向到您想要的位置?如果是这样的话,你也许可以避免写每一个地址。不幸的是,没有模式,只有一个大约10-20个URLStanks的列表,这几乎就是我要找的。是否可以包含一个url列表,所有url都应该“指向”同一个最终url?或者只是手动将它们全部写出来更容易(如果列表将变得相当大)列表是否会变得相当大?我想可能是20个,也许更多。。我只是想让.htaccess文件在长时间内更易于维护,如果它确实在
aka
|
中成长,那么它看起来确实不错,但是根据您需要重定向的URL,我想说,从长远来看,每行1个会更好地维护和读取,并且如果您达到了目标,使用脚本也很容易操作要点。@d-#-b我本来打算更新我对你上次关于
/d#a
的评论的回答,但Prix已经有了一个你可以做的例子:各自为政。。英雄联盟这对于可读性也很有效,不过,似乎使用管道的代码更少。@Pjack是的,使用管道的代码更少,如果他只需要重写一级子目录,但图像不是一个或巨大的名称,那么对于一行来说,它将变得非常混乱。