• 締切済み

リダイレクトできません。クエリー文字列を含めたURLはリダイレクトしない?

.htaccessで http://example.com/index.php?%E3%83%8B%E3%82%B3%E3%83%8B%E3%82%B3%E5%8B%95%E7%94%BBwikihttp://example.com/ にリダイレクトさせようと思っています。 以下をを実行してもうまくいきません。 Redirect permanent /index.php?%E3%83%8B%E3%82%B3%E3%83%8B%E3%82%B3%E5%8B%95%E7%94%BBwiki http://example.com/ 以下の様にするといくのですが Redirect permanent /index.php http://example.com/test.php 上と下の違いはクエリー文字列が含まれていることだとおもいます。 クエリー文字列を含めるとリダイレクトは働かないのでしょうか? 文字列をなんらか形でエスケープする必要があるのでしょうか? javascriptだといくのですが、.htaccessだといきません。 教えてください。宜しくお願いします。

みんなの回答

  • aton
  • ベストアンサー率47% (160/334)
回答No.1

http://httpd.apache.org/docs/trunk/ja/mod/mod_alias.html には, <引用開始> od_alias は簡単な URL 操作向けに設計されています。 より複雑な操作、クエリーストリングの操作には、mod_rewrite で提供されるツールを使用してください。 <引用終了> とありますので,mod_rewriteを使うしかないのではないでしょうか? http://www.webmasterworld.com/apache/3197508.htm を見ると,RewriteCond %{QUERY_STRING} が必要そうです。 http://forums.digitalpoint.com/showthread.php?t=238321 http://www.kuri3.net/modules/bwiki/index.php?HttpdConf http://apache.rsz.jp/docs-ja/1.3/mod/mod_rewrite.html.ja.jis#RewriteCond などから推測するに,おそらくは, RewriteEngine On RewriteCond %{QUERY_STRING} ^%E3%83%8B%E3%82%B3%E3%83%8B%E3%82%B3%E5%8B%95%E7%94%BBwiki$ RewriteRule /index.php http://example.com/ [L, R=302] みたいにすればいいのではないでしょうか? #もしかしたら'%'は'\%'のようにエスケープする必要があるかもしれません。

参考URL:
http://httpd.apache.org/docs/trunk/ja/mod/mod_rewrite.html

関連するQ&A