1

libフォルダー以外のすべてで機能するrewriteruleがあります。ルールは

RewriteRule ^/uk(.*) $1

これはより複雑なルール セットの 1 つですが、これ以外はすべて無効にしました。ルールは、lib フォルダーの内容以外のすべてに対して正常に機能します。

http://site.local/lib/cookies.jsは機能しますが、http://site.local/uk/lib/cookies.jsは機能しません。

サイト上の他のすべてのパスは正常にリダイレクトされます。

http://site.local/uk/course/view.php?id=15http://site.local/course/view.php?id=15 に移動します

  • 名前に 3 文字しかない他のフォルダーは機能します。
  • uk/otherpath/lib は動作します。
  • libフォルダーにhtaccessファイルがありません
  • サイトのルートに htaccess ファイルがありません (ルールは仮想ホスト定義にあります)
  • この問題は、ubuntu と redhat (dev と production) で発生します。
  • この問題は、同僚のワークステーションの別のムードル サイトで発生します
  • lib フォルダーのアクセス許可は、ディレクトリ ツリーの残りの部分と同じです。

何が足りないの?!? ヘルプ!!!!!!!!!

- - 編集 - -

RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 9

私に与えます

127.0.0.1 - - [22/Sep/2011:11:21:57 +0100] [site.local/sid#7f15a0b345d0][rid#7f15a0e1b270/initial] (2) init rewrite engine with requested uri /uk/lib/cookies.js
127.0.0.1 - - [22/Sep/2011:11:21:57 +0100] [site.local/sid#7f15a0b345d0][rid#7f15a0e1b270/initial] (3) applying pattern '^/uk(.*)' to uri '/uk/lib/cookies.js'
127.0.0.1 - - [22/Sep/2011:11:21:57 +0100] [site.local/sid#7f15a0b345d0][rid#7f15a0e1b270/initial] (2) rewrite '/uk/lib/cookies.js' -> '/lib/cookies.js'
127.0.0.1 - - [22/Sep/2011:11:21:57 +0100] [site.local/sid#7f15a0b345d0][rid#7f15a0e1b270/initial] (2) local path result: /lib/cookies.js
127.0.0.1 - - [22/Sep/2011:11:21:57 +0100] [site.local/sid#7f15a0b345d0][rid#7f15a0e1b270/initial] (1) go-ahead with /lib/cookies.js [OK]
127.0.0.1 - - [22/Sep/2011:11:21:57 +0100] [site.local/sid#7f15a0b345d0][rid#7f15a0e232b0/initial] (2) init rewrite engine with requested uri /favicon.ico
127.0.0.1 - - [22/Sep/2011:11:21:57 +0100] [site.local/sid#7f15a0b345d0][rid#7f15a0e232b0/initial] (3) applying pattern '^/uk(.*)' to uri '/favicon.ico'
127.0.0.1 - - [22/Sep/2011:11:21:57 +0100] [site.local/sid#7f15a0b345d0][rid#7f15a0e232b0/initial] (1) pass through /favicon.ico

それで、それはうまくいくように見えますか?

4

2 に答える 2

1

RewriteLog をオンにし、RewriteLogLevelを増やして、Apache の動作に関する詳細情報を取得することをお勧めします。

于 2011-09-22T10:17:34.270 に答える
1

私のローカル マシンでこれをいじった後、Apache が document_root/lib ディレクトリをチェックする前に、ファイル システムの /lib に書き換えているように見えます。

Rewrite を次のように変更する必要があります。

RewriteRule ^/uk(.*) %{DOCUMENT_ROOT}$1
于 2011-09-22T11:04:06.093 に答える