使用apache mod rewrite重定向用户请求

使用apache mod rewrite重定向用户请求,apache,mod-rewrite,Apache,Mod Rewrite,我有以下重写规则将所有内容重定向到index.php RewriteEngine On RewriteCond %{REQUEST_URI} (/[^.]*|\.)$ [NC] RewriteRule .* index.php [L] 现在我需要修改它以支持以下内容 当用户尝试访问domain.tld时,将其重定向到www.domain.tld 当用户尝试访问domain.tld/key/。。。重定向他永久重定向到key.domain.tld/ 当然,我仍然需要将所有流量重定向到index.p

我有以下重写规则将所有内容重定向到index.php

RewriteEngine On
RewriteCond %{REQUEST_URI} (/[^.]*|\.)$ [NC]
RewriteRule .* index.php [L]
现在我需要修改它以支持以下内容 当用户尝试访问domain.tld时,将其重定向到www.domain.tld 当用户尝试访问domain.tld/key/。。。重定向他永久重定向到key.domain.tld/

当然,我仍然需要将所有流量重定向到index.php,除非用户试图访问css、javascript和图像,而我需要直接为它们提供服务

domain.tld/css/。。。 subdomain.domain.tld/css/。。。apache应该直接为url css文件提供服务 同样,我需要添加js和图像文件夹


我对Apache ReWrite模块很反感,所以请在这里帮助我:

这给了我一个500服务器错误,除了www.domain.tld:我搜索了所有日志,还尝试了RewriteLog/usr/local/var/Apache/logs/ReWrite.log,但它似乎没有生成任何内容。有什么想法吗?现在试试,我更新了。。是否要将用户从类似domain.com/username移动到username.domain.com?我没有真正了解你。你想做什么?所以,一次做一件事,我想做一件事。在没有子域时添加www子域domain.com/。任何内容..=>www.domain.com/。任何。。2.抓取出现的特定单词key,它是第一个组件,并将其添加为子域,然后扩展domain.com/key/。anything..=>key.domain.com/.anything。。将此标记也标记为永久重定向。
<IfModule mod_rewrite.c>
  RewriteEngine on

  RewriteCond %{REQUEST_FILENAME} !-f #if a file, css, js, jpg whatever file
  RewriteCond %{REQUEST_FILENAME} !-d #if thats a directory

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.example\.com$ [NC]
RewriteRule ^$ /someprofile.php?username=%2 [QSA,L]

</IfModule>