我正在构建一个下载站点,用户将能够注册,并且将在我的服务器上创建一个带有用户名的文件夹,例如:home/users/username
我想要实现的目标是,如果有人在浏览器中输入username.domain.com
,它会将它们发送到:home/users/username/
,如果他们输入:username.domain.com/file.mp3
,它会路由它们致:home/users/username/file.mp3
如果它可以完成子文件夹路由,那将是非常充分的,例如; home/users/username/sub/file.mp3
谢谢你们
答案 0 :(得分:2)
尝试将以下内容添加到站点根目录中的.htaccess
文件中。
这会将对username.domain.com
的任何请求重写为正确的文件夹/子文件夹和文件。
我假设home
是您网站根文件夹中的目录。
RewriteEngine on
RewriteBase /
#if request for usename.domain.com/anything
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$ [NC]
#send any request that is not already for home/users to home/users/username/anything
RewriteRule ^(?!home/users/) home/users/%1%{REQUEST_URI} [L,NC]
答案 1 :(得分:0)
我尝试了Ulrich Palha推荐但没有运气。我希望这会帮助像我这样的人,Ulrich的答案不起作用。
# Rewrite username.domain.com/<path> to domain.com/home/username/<path>
#
# Rewrite only if not already rewritten to /home/
RewriteCond $1 !home/
# Skip rewrite if subdomain is www
RewriteCond %{HTTP_HOST} !^www\. [NC]
# Extract (required) subdomain to %1
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$
# Rewrite to /home/username/URL-path
RewriteRule (.*) /home/%1/$1 [L]