17

Apache のモジュールを使用して大文字と小文字を区別しない URL を使用したいのmod_spelingですが、これは「複数のオプション」の不要なリストを生成していますが、Apache のドキュメントには次のように書かれています。

設定すると、このディレクティブはスペル修正のアクションを小文字/大文字の変更に制限します。その他の潜在的な修正は実行されません。

Apache 2.2.16 Unix の新規インストールでこれをテストしていますが、2008 年に提出されたものとまったく同じ問題が発生しています。

checkCaseOnly ディレクティブがオンのときに Apache がいくつかの「複数の選択肢」(ステータス コード 300) をリストするとき、これは予期しない (そして望ましくない) 動作です!

私はこれを持っていますhttpd.conf

CheckSpelling on
CheckCaseOnly on

mod_speling大文字と小文字の修正のみに制限する 2 番目のディレクティブを使用する最初のディレクティブ

私は何を間違っていますか?

4

5 に答える 5

10

TLDR: CheckCaseOnly は、2014 年 10 月の時点で 6 年以上修正されていないバグが原因で壊れています。

これは古い質問であることは知っていますが、同じ問題に遭遇しました。この更新は、同じ問題を抱えている他のユーザーを支援するためのものです。

OPはmod_spelingを正しく使用しているため、この質問に対する現在の回答は正しくありませんが、バグがあります。

https://issues.apache.org/bugzilla/show_bug.cgi?id=44221

根底にある問題は、モジュールの残りの部分が変更されるため、この動作を修正することに apache の人々が反対していることです。これは、6年間ほど修正されていません。

于 2014-10-23T13:25:14.653 に答える
10

mod_speling を (Location または VirtualHost によって) 有効にするには、次のディレクティブを使用します。

CheckSpelling On

大文字と小文字を区別しないことだけが必要な場合は、次を使用します。

CheckCaseOnly On

また、RewriteEngine を有効にする必要があります。

RewriteEngine On
于 2011-09-29T21:15:53.543 に答える
8

Apache 2.2 を使用する Ubuntu 12.04 LTS で、次のことを行いました。

  1. 構成オプションを提供するために作成speling.confします。${APACHE}/mods-available

    <IfModule mod_speling.c>
        CheckSpelling On
        CheckCaseOnly On
    </IfModule>
    
  2. speling.confおよびspeling.load有効なモジュール ディレクトリにリンクし${APACHE}/mods-enabledます。

    # cd ../mods-enabled
    # ln -s ../mods-available/speling.conf speling.conf
    # ln -s ../mods-available/speling.load speling.load
    
  3. サーバーを再起動します。

    # service restart apache2
    
于 2013-10-04T08:01:47.210 に答える
0

大文字と小文字を区別しない URL が本当に必要ですか?
このように、小文字の URL を強制しないのはなぜですか?

RewriteEngine On
RewriteMap lc int:tolower
RewriteRule (.*) ${lc:$1} [R]

http://www.isssociate.de/board/post/265865/make_URLをご覧ください。

于 2011-05-27T16:36:31.017 に答える