web-dev-qa-db-ja.com

URLが一致しない場合はリダイレクトする

D7を使用しています。

ページをリダイレクトする.htaccessファイルにリダイレクトを作成しようとしていますifパスがない場合パターンに一致します

# only if a particular domain
RewriteCond %{HTTP_Host} ^mysite\.domain\.org$ [NC]
# only if URI contains "library"
RewriteCond %{REQUEST_URI} !^/Library$ [NC]
# rewrite the URL
RewriteRule ^(.*)$ http://otherdomain.org/$1 [R=301,L]

これはほとんどのサイトで正常に機能します(例 http://mysite.domain.org/blogshttp://otherdomain.org/blogs にリダイレクトされます)

ただし、 http://mysite.domain.org/Library?id=1234http://otherdomain.org?id=1234 ( "library "URIがありませんが、これはまったくリダイレ​​クトされません)

何が欠けていますか? Drupal URL書き換えルールに遭遇していますか?

1
zkent

これを試して:

# only if a particular domain
RewriteCond %{HTTP_Host} ^mysite\.domain\.org$ [NC]
# rewrite the URL
RewriteRule ^((?!Library).*)$ http://otherdomain.org/$1 [R=301,L]

(?!Library)は先を見る必要があり、「Library」が存在する場合、一致は失敗するはずです。これがうまくいくことを願っています。

1
Triskelion