子域名重定向到完整的URL并保留原始子域名

时间:2014-01-08 13:53:28

标签: php wordpress .htaccess redirect

所以,在开头时要更加明确:

这是当前的链接结构:

http://example.com/video-slug/wordpress-title-of-the-video-slug

我有一个子域名:

http://tv.example.com/

我想要实现的是,当有人点击时:

http://tv.example.com/wordpress-title-of-the-video-slug

它确定tv.example.com等于example.com/video并打开链接:

http://example.com/video/wordpress-title-of-the-video-slug,但将结构保留在位置栏中:

http://tv.example.com/wordpress-title-of-the-video-slug

3 个答案:

答案 0 :(得分:1)

您的.htaccess文件中需要重写规则。从记忆中,这样的事情应该有效。

RewriteEngine on 
RewriteRule ^(.*)$ http://example.com/video/$1 [NC]

放置在tv子域。

答案 1 :(得分:1)

更通用的解决方案,适用于您的问题。 它允许任何http://subdomain.example.com/提供位于http://example.com/subdomain/的内容,同时保留原始网址(包含子域名)。

P选项(代理服务器)用于此目的(将原始URL保留在地址栏中),并回答接受的答案评论中提出的问题(我无法评论回来......)

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/%1/$1 [L,P]

对于您的具体情况,它将是

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^tv\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/video/$1 [L,P]

我现在面临的一个缺点是PHP $ _SERVER URI设置为已翻译的URL而不是原始URL。但那是另一个问题:)

答案 2 :(得分:0)

我认为这是一种使用PHP的简单方法:

<?php 
//add some params
$_GET['param1'] = value1;
//the actual page you wish to redirect to
include "/var/www/page.php";

?>