当我访问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]