1

「admin」という用語がrequest_uriに含まれている場合、Apacheの書き直しを試みています

mydomain.com/admin/anything_else

サブドメインを使用するようにホストを書き直す

admin.mydomain.com/admin/anything_else.

同様に、admin.mydomain.com でリンクをクリックし、それが「admin」を含まない URL である場合、URL を次のように書き換えたいと思います。

mydomain.com/anything_else

私の質問はです。正規表現はそのような存在チェックを行うことができますか? 一致しない用語を実行できることは承知していますが(構文はわかりませんが...)、この場合、正規表現を完全に失敗させたいと考えています。何か案は?

ReWriteCond [^(admin)]$

mydomain.com/admin/hi - mydomain.com/anything に一致 - 一致しません

4

3 に答える 3

1

次のルールを試してください。

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]
于 2009-11-14T08:01:17.733 に答える
0

私は似たようなことをすることになった...

# 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]
于 2009-11-18T18:26:19.657 に答える
0

mydomain.com/(?!admin) のような否定的な先読みを使用してみてください。

于 2009-11-14T02:56:30.800 に答える