指定された文字列が存在する場合に一致しないための正規表現
-
20-09-2019 - |
質問
私は、用語「管理者が」REQUEST_URIに含まれている場合、Apacheのリライトをやろうとしている。
mydomain.com/admin/anything_else
サブドメインを使用するホストを再書き込み
admin.mydomain.com/admin/anything_elseます。
同様に、admin.mydomain.comにいる間、私はリンクをクリックして、それはそれで「管理者」ないURLであれば、その後、私は背中にURLを書き換えるしたいと思います。
mydomain.com/anything_else
私の質問です。そのようなが存在チェックを行うとregexができますか?私は(私が...しかし構文を知らない)それは一致しない用語を行うことができますことを承知しているが、この場合には、私は正規表現が完全に失敗します。任意のアイデア?
のRewriteCond [^(管理者)] $
mydomain.com/admin/hi - 試合 mydomain.com/anything - 一致していません。
解決 3
私は似た何かをやってしまった...
# Redirect to subdomain admin for an admin specific uri request
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteCond %{REQUEST_URI} admin
RewriteRule ^(.*)$ http://admin.example.com$1 [L]
# Redirect to subdomain admin for an admin specific uri request
RewriteCond %{HTTP_HOST} ^admin.example.com$
RewriteCond %{REQUEST_URI} !admin
RewriteRule ^(.*)$ http://www.example.com$1 [L]
他のヒント
これらのルールを試してみてください。
RewriteCond %{HTTP_HOST} !=admin.example.com
RewriteRule ^admin(/|$) http://admin.example.com%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} =admin.example.com
RewriteRule !^admin(/|$) http://example.com%{REQUEST_URI} [L,R=301]
あなたはmydomain.com /(?!管理)
のように、負の先読みを使用してみてください所属していません StackOverflow