将子域名作为发布数据发送

时间:2013-01-28 10:57:45

标签: php .htaccess seo

过去几个小时都在寻找解决方案,我想我会问这里。

我正在寻找一种处理链接的方法,例如:

  

http://subdomain.domain.com/page/subpage/

因此它们将作为:

传递给服务器
  

http://domain.com/index.php?subdomain=subdomain&page=page&subpage=subpage

可以通过index.php来显示正确的页面信息。

我可以让页面和子页面工作,但不知道如何获取子域名。注意:如果没有子域名,我希望该字段留空或包含默认值。

非常感谢任何帮助。 :)

修改
为了澄清,我希望第一个URL是用户看到的,可以输入到地址栏,第二个URL是用户导航到第一个URL时由服务器加载的页面。

我的.htaccess文件

Options +FollowSymlinks -MultiViews -Indexes

RewriteEngine On
RewriteBase /

# Remove 'www'
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

# Add slashes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !index.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://resolutiongaming.com/$1/ [L,R=301]

# Subdomain redirect
RewriteCond %{HTTP_HOST} ^resolutiongaming.com$
RewriteRule ^webdev/$ http://webdev.resolutiongaming.com [R=301,L]
RewriteRule ^artwork/$ http://artwork.resolutiongaming.com [R=301,L]
RewriteRule ^music/$ http://music.resolutiongaming.com [R=301,L]

ErrorDocument 404 /error.php

1 个答案:

答案 0 :(得分:2)

您可以在根目录中的一个.htacces文件中尝试:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST}  ^(?:www\.)?([^\.]+)\.domain\.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  ^/([^/]+)/([^/]+)/?   [NC]
RewriteRule .*     http://domain.com/index.php?subdomain=%1&page=%2&subpage=%3  [R=301,L]

它将永久重定向:

http://subdomain.domain.com/page/subpage/http://www.subdomain.domain.com/page/subpage/

要:

http://domain.com/index.php?subdomain=subdomain&page=page&subpage=subpage

要使规则生效,必须保留传入的URL方案:/page/subpage/

要使用静默映射替换永久重定向,请从[R = 301,L]中删除R=301或将其替换为R以进行时间重定向。