我必须得到我的域的子域名(例如: d3strukt0r .orbitrondev.com / forum.php)
因此,在示例中,我必须获取d3strukt0r
并访问目录:/service/d3strukt0r/www/forum.php
这必须与.htaccess
我已经尝试过这段代码:
RewriteCond %{ENV:REDIRECT_SUBDOMAIN} =""
RewriteCond %{HTTP_HOST} ^([a-z0-9][-a-z0-9]+)\.orbitrondev\.com\.?(:80)?$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /service/%1/www/$1.php [E=SUBDOMAIN:%1,L]
出来的是:
在此服务器上找不到请求的URL /forum.php。
因此访问了我的代码而不是/service/d3strukt0r/www/forum.php
此/forum.php
修改
它适用于此
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([a-z0-9][-a-z0-9]+)\.orbitrondev\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/service/%1/www/$1 -f [NC]
RewriteRule ^(.*)$ /service/%1/www/$1 [L]
问题是,当我访问文件夹http://d3strukt0r.orbitrondev.com/folder/
时,它会访问/folder/
而不是/service/d3strukt0r/www/folder/
我该如何解决这个问题?
答案 0 :(得分:1)
SUBDOMAIN
env变量,因为您正在检查是否存在.php
分机HTTP_HOST
变量HTTP_HOST
www.
您可以使用此规则:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([a-z0-9][-a-z0-9]+)\.orbitrondev\.com$ [NC]
RewriteCond %{DOCUMENT_ROOT}/service/%1/www/$1.php -f [NC]
RewriteRule ^(.+?)/?$ /service/%1/www/$1.php [L]
另请确保您访问此网址:
http://d3strukt0r.orbitrondev.com/forum
即。最后没有.php
。