过去几个小时都在寻找解决方案,我想我会问这里。
我正在寻找一种处理链接的方法,例如:
因此它们将作为:
传递给服务器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
答案 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
以进行时间重定向。