将虚拟子域指向文件夹-错误


Point a virtual sub domain to a folder - error

当我访问url时,我有一个域名www.jannatband.com

http://jannatband.com/me/asd

它成功地回显了值asd,原始url如下:

http://jannatband.com/me/index.php?u=asd

上面的访问代码:

# .htaccess
RewriteEngine on
RewriteRule ^[aA-zZ]+$ index.php?u=$0

但是当我尝试将相同的url转换为时

http://me.jannatband.com/asd

使用此.htaccess代码:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^me'.jannatband'.com$
RewriteCond %{REQUEST_URI} !^/me/
RewriteRule (.*) /me/$1

它给了我一个This webpage is not available错误。这个.htaccess代码出了什么问题?

PS/me/public_html中的现有目录。

在您的情况下,重写规则将更改URL一次。但是您想让重写引擎再次处理更改后的URL。

您可以通过指定一个标志,即下一个标志来说明这一点。来自手册:

'next|N'(下一轮)重新运行重写过程(从第一个重写规则开始)。这一次,要匹配的URL不再是原始URL,而是上次重写规则返回的URL。这对应于C中的Perl next命令或continue命令。使用此标志可以重新启动重写过程-立即转到循环的顶部。

所以当你启用它时要小心:

RewriteRule (.*) /me/$1 [N]