使用.htaccess文件,如何在加载page B
时加载page A
?我不希望更改网址,但仍应说page A
。
示例:用户加载www.mysite.com/contact
并获取www.mysite.com/contact-us
最好如何将多个网址重定向到同一个地方?例如.com/A
,.com/B
和.com/C
都会加载.com/d
的内容。有没有办法将其中的许多组合在一起(与此解决方案相反:htaccess redirect without changing url)
答案 0 :(得分:3)
这取决于你的分组意思。您可以匹配域之后的任何内容,并将其指向您真正想要的其他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
而不更改网址
修改强>
要回答有关特定网址的评论,如果您只希望A B or 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
而不更改网址。
答案 1 :(得分:3)
根据您的网址布局,我会选择以下内容:
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]