htaccess中子域中的变量

时间:2017-04-16 11:32:13

标签: php .htaccess mod-rewrite

我有2个php页面“download.php”和“windows.php”

两者的链接是

xyn.com/download.php?r=test

xyn.com/windows.php?r=test

注意:两个页面中的两个变量是相同的

我想建立像这样的网页链接

1 - 下载。“variable”.domain.com - >的download.php R =测试 2 - 下载。“变量”.domain.com / windows - > windows.php R =测试

我正在使用的代码是:

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{REQUEST_URI} !index\.php
RewriteCond %{HTTP_HOST} ^download\.(.+?)\.domain\.com$
RewriteRule ^(.*)$    download.php?r=%1 [L]

RewriteCond %{HTTP_HOST} ^download\.(.+?)\.domain\.com/windows$
RewriteRule ^(.*)$    windows.php?r=%1 [L]

第一个链接工作正常:

download.variable.domain.com

但第二个链接是带我到第一个链接:

download.variable.domain.com/windows

所以任何想法?

2 个答案:

答案 0 :(得分:0)

两个条件都在HTTP_HOST上,只需添加REQUEST_URI作为条件。

试试这个:

RewriteCond %{REQUEST_URI} !^/windows
RewriteCond %{HTTP_HOST} ^download\.(.+?)\.YourDomain\.net$
RewriteRule ^  http://YourDomain.net/download.php?r=%1 [L]

RewriteCond %{REQUEST_URI} ^/windows
RewriteCond %{HTTP_HOST} ^download\.(.+?)\.YourDomain\.net$
RewriteRule ^  http://YourDomain.net/windows.php?r=%1 [L]

http://download.babjhons.YourDomain.net/windows

=>

http://YourDomain.net/windows.php?r=babjhons

答案 1 :(得分:0)

RewriteCond %{THE_REQUEST} \h/\h
RewriteCond %{REQUEST_URI} !^/download\.php
RewriteCond %{HTTP_HOST} ^download\.([^\.]+)\.domain\.com$
RewriteRule ^ download.php?r=%1 [L]

RewriteCond %{THE_REQUEST} \h/windows\h
RewriteCond %{REQUEST_URI} !^/windows\.php
RewriteCond %{HTTP_HOST} ^download\.([^\.]+)\.domain\.com$
RewriteRule ^ windows.php?r=%1 [L]

所有这些子域都应指向一个文档根