短いURLでは正しく動作することを確認しています。
.htaccessファイルに文字数制限等はあるのでしょうか?
またmeta refresh以外にて正しく301リダイレクトをする方法があれば、ご教授願います。
Redirect 301 /%e3%83%86%e3%82%b9%e3%83%88/index.html
これはOK.
%E6%9D%B1%E8%8A%9D%E3%83%86%E3%83%83%%B7%E3%82%B9%E3%83%86%E3%83%A0/9%E3%83%86%E3%83%A0%E3%81%A8%E3%81%AF.html
これはこっちでもデコードできないな。
単純に URL エンコードが間違ってんじゃない?
コメント欄に書き込めないので、回答欄にて確認することをご容赦ください。
日本語のフォルダ名・ファイル名というのはURLエンコードされたものですか? この場合、ドメイン名を含めた長さは何バイトになっていますか?
それとも、マルチバイト文字ですか? この場合、UTF-8でエンコードしていますか?
UTF-8でエンコードでこのような形です。
%E6%9D%B1%E8%8A%9D%E3%83%86%E3%83%83%%B7%E3%82%B9%E3%83%86%E3%83%A0/9%E3%83%86%E3%83%A0%E3%81%A8%E3%81%AF.html
> 移転前のURLが長い?せいか(日本語のフォルダ名・ファイル名)リダイレクトがうまくいきません。
まさかとは思いますが、.htaccessに日本語のまま(URLエンコードされていない形で)記述してませんよね?
ディレクトリ名を実際のものとは置き換えてでも、どのような設定をしているか見せて頂いた方が答えやすいかもしれません。
> .htaccessファイルに文字数制限等はあるのでしょうか?
Apache2.2のマニュアルを読んだところ、そのような記述はありませんでした。
また、手元のApache2.2.9(Debian lenny)でテストしたところ、一行1024文字以上の.htaccessも問題なく使用できました。
しかしネット上には「文字数制限がある」と断言している方もいらっしゃるようです。もしかして他のバージョンでは文字数制限があったのかもしれませんね。
ご利用されてるのはApacheですか?バージョンはいくつでしょうか。
> またmeta refresh以外にて正しく301リダイレクトをする方法
まず、.htaccessに記述する方法は二通りありますがどちらも試されましたでしょうか?
Redirect 301 /hoge/ http://example.jp/fuga/
RewriteEngine on
RewriteRule ^/hoge/$ /fuga/ [R=301]
また、PHPやCGIによってヘッダを送出し、301リダイレクトをする方法もあります。
# ファイルhogeを置いたディレクトリの.htaccess
<FilesMatch "^hoge$">
ForceType application/x-httpd-cgi
</FilesMatch>
# hogeの中身(CGIでの例)
my $uri = $ENV{'REQUEST_URI'};
$uri=~s/\/hoge\//\/fuga\//;
print "Status: 301 Moved Permanently\n";
print "Location: http://example.jp$uri\n";
> ご教授願います。
この場合、「ご教示願います。」が正しいです。
一度「ご教授願います」でググってみてください。
一度「ご教授願います」でググってみてください。
http://www.tt.rim.or.jp/~rudyard/torii009.html
こちらですね。
失礼しました;;
試しにリダイレクト先に設定した場合はうまくいくのですが。
UTF-8でエンコードでこのような形です。
%E6%9D%B1%E8%8A%9D%E3%83%86%E3%83%83%%B7%E3%82%B9%E3%83%86%E3%83%A0/9%E3%83%86%E3%83%A0%E3%81%A8%E3%81%AF.html
おや? これだとデコードできませんよ。
このため、リダイレクトが正常に働いていないのではないでしょうか。
URLエンコード・デコードフォームで確認してみてください。
※設定された回答回数の上限になりました。さらにフォローが必要でしたら、コメント欄を開けていただくか、回答回数を増やしてください。
ありがとうございます。
たとえば
http://abc.jp/テスト/index.htmlをリダイレクトさせたい場合は
Redirect 301 /%e3%83%86%e3%82%b9%e3%83%88/index.html
ではだめなのでしょうか?
firefoxでは http://abc.jp/テスト/index.html
と表示され、
IEでは http://abc.jp/%E3%83%86%E3%82%B9%E3%83%88/index.html
と表示されています。
Redirect 301 /%e3%83%86%e3%82%b9%e3%83%88/index.html
これはOK.
%E6%9D%B1%E8%8A%9D%E3%83%86%E3%83%83%%B7%E3%82%B9%E3%83%86%E3%83%A0/9%E3%83%86%E3%83%A0%E3%81%A8%E3%81%AF.html
これはこっちでもデコードできないな。
単純に URL エンコードが間違ってんじゃない?
Redirect 301 /%e3%83%86%e3%82%b9%e3%83%88/index.html
これがまずリダイレクトしません。
上記URLはすいません、ダミーです。
Redirect 301 /%e3%83%86%e3%82%b9%e3%83%88/index.html
これがまずリダイレクトしません。
そりゃ文法が間違ってるからね。
上記URLはすいません、ダミーです。
ダミーでも別にかまわないけど、現状やってるやり方をもうちっと説明してくれないと
問題が何かさっぱりわからんよ?
あと、これは認識間違い。
meta refresh以外にて正しく301リダイレクト
meta タグによる遷移と 301リダイレクトは全く別の機能・方法だから。
もう一度言うけど、問題解決に至る情報がぜんぜん足りてないんでコメント欄でもなんでもいいから
説明しないと回答は付かないと思うよ?
すいません、
なんとか自力で解決しました。
お騒がせいたしました;;
Redirect 301 /%e3%83%86%e3%82%b9%e3%83%88/index.html
これがまずリダイレクトしません。
上記URLはすいません、ダミーです。