仮想ドメイン システムに取り組んでいます。ワイルドカード 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 を後方参照できることだけです。