我正在开发一个虚拟域系统。我将通配符 DNS 设置为*.loc
,并且正在尝试处理我的.htaccess
文件。以下代码有效:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?example\.loc$ [NC]
RewriteCond %{REQUEST_URI} !^/example/
RewriteRule (.*) /example/$1 [L,QSA]
但是,我希望它可以与我输入的任何内容一起使用。但是,我需要%{REQUEST_URI}
针对作为域找到的文本进行检查。我尝试使用此代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?([a-zA-Z0-9-]*.)?([a-zA-Z0-9-]+)\.loc$ [NC]
RewriteCond %{REQUEST_URI} !^/%3/
RewriteRule (.*) /%3/$1 [L,QSA]
但是该行RewriteCond %{REQUEST_URI} !^/%3/
导致我的代码引发内部服务器错误。我知道这是因为我的代码中有 %N,但是有没有办法可以使用它?我需要这一行,否则我的代码会因内部重定向而失败。
我希望这对某人有意义。我所需要的只是能够在后面的 RewriteCond 中反向引用 RewriteCond。