[英].htaccess rewrite [virtual] subdomain to [virtual] folder
我有一個包含虛擬頁面的網站,其中任何請求都以這種方式重寫到索引頁面:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^.*$ ./index.php
即,在我解析http://www.example.com/job/edit時將其重寫為http://www.example.com/index.php/job/edit 。 效果很好。
現在,我需要處理每個虛擬子域,以使http://user1.example.com/job/edit變為http://www.example.com/index.php/user1/job/edit 。
我在CPanel中添加了通配符子域( *.example.com
),因此每個子域都指向域文件夾(沒有它,我在每個子域上都沒有找到“服務器”)。
我嘗試了在此找到的每個示例,但無法使它們正常工作。 如果我在索引頁上打印$_SERVER['REQUEST_URI']
,我總是得到最后一部分,而不是子域(即/job/edit
)。
有什么辦法嗎?
提前致謝。
編輯:我已經有一個解決方法。 $_SERVER['HTTP_HOST']
var包含整個域,即user1.example.com
。 我可以用PHP解析它並提取子域,但是我認為它應該是一種更優雅的方法。
我做過一樣的事情。
創建一個名為“用戶”的文件夾
創建一個index.php來處理對用戶函數的調用
在路由的Httpd.conf中添加虛擬主機
* .example.com到路徑/ public_html / user
<VirtualHost 0.0.0.0>
ServerAlias *.example.com
ServerAdmin webmaster@yourdomain.com
DocumentRoot /home/yourdoma/public_html/user
ServerName yourdomain.com
User yourdoma
Group yourdoma
BytesLog /usr/local/apache/domlogs/yourdomain.com-bytes_log
CustomLog /usr/local/apache/domlogs/yourdomain.com combined
ScriptAlias /cgi-bin/ /home/yourdoma/public_html/joe/cgi-bin/
</VirtualHost>
現在,所有呼叫將路由到用戶文件夾。
在用戶文件夾中添加一個Htaccess文件以重寫基本路徑
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.