質問箱/2475

カテゴリ
サマリデータのバックアップ
バージョン1.4.4
投稿者初心者
状態完了
投稿日2004-12-09 (木) 13:12:55

質問

初めまして。サーバーの障害によって、wikiが表示されなくなってしまいました。「Internal Server Error」と表示されるので、サーバー内のエラーのようです。データ自体はアップロードされているようなので、再度、PukiWikiをアップロードしようと考えてます。そこで、過去のデータはどこにあるのでしょうか? また、それを上書きすれば、以前の状態に戻るのでしょうか?

回答

復旧後のApacheはバージョン1.3.33となっており、復旧まえの1.3.31よりApacheの正 規表現の仕様が変更されております事が原因で、.htaccessを設置しているお客様の ホームページにおいて、以下の不具合が発生する可能性があります。

・エラー(Internal Server Error)が発生する。 ・エラーログに「.htaccess: Regex could not be compiled」が記録される

この度のApacheの仕様変更では、正規表現の判別のルールが変更されておりますの で、特に.htaccessで<FilesMatch>ディレクティブもしくは<Files>ディレクティブの 拡張正規表現を使用しているお客様は、このエラーを回避できるよう対処していただ く必要がございます。

以下、エラーが発生する.htaccessの記述の具体例と、その回避策を説明致します。

■具体例1

	<FilesMatch "*\.php">&br;
	Order allow,deny&br;
	Deny from all&br;
	</FilesMatch>

「*」は直前に置かれている文字の0字以上の繰りかえしを意味します。 具体例1では、「*」の直前に何の文字も置かれていないため、エラーになります。

□具体例1の解決策

	<FilesMatch ".*\.php">&br;
	Order Deny,Allow&br;
	Deny from all&br;
	</FilesMatch>

「*」(アスタリスク)の前に何らかの文字を挿入すれば、エラーを回避できます。 上記の例では「.」(ドット)を挿入しています。

■具体例2

	<FilesMatch "?\.php">&br;
	Order allow,deny&br;
	Deny from all&br;
	</FilesMatch>

「?」は直前に置かれている文字の0文字または1文字の繰りかえしを意味します。 上記の例では、「?」の直前に何の文字も置かれていないため、エラーになります。

□具体例2の解決策

	<FilesMatch ".?\.php">&br;
	Order Deny,Allow&br;
	Deny from all&br;
	</FilesMatch>

「?」(クエスチョンマーク)の前に何らかの文字を挿入すれば、エラーを回避できま す。 上記の例では「.」(ドット)を挿入しています。

■具体例3

	<Files ~ "*\.php">&br;
	Order allow,deny&br;
	Deny from all&br;
	</Files>

Files>ディレクティブでは「~」(チルダ)を使用した場合に、拡張正規表現を使用し ますので、問題が発生する可能性があります。 上記の例では、「*」の直前に何の文字も置かれていないため、エラーになります。

□具体例3の解決策

	<Files ~ ".*\.php">&br;
	Order allow,deny&br;
	Deny from all&br;
	</Files>

「*」(アスタリスク)の前に何らかの文字を挿入すれば、エラーを回避できます。 上記の例では「.」(ドット)を挿入しています。

具体例と解決策は以上になります。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-11-23 (木) 19:14:09
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.272 sec.

SourceForge