在过去的几个小时里,我一直在寻找解决办法,我想我应该问问这里。
我正在寻找处理链接的方法,例如:
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

最佳答案

您可以在根目录中的一个.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

关于php - 将子域名作为发布数据发送,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14560521/

10-13 01:20