0

ここに私の.htaccessファイルがあります

## Turn on RewriteEngine
RewriteEngine on
Options +FollowSymlinks

## Ignore
RewriteRule     (slir)  -   [L,NC]
RewriteRule     ^slir - [L,NC]

## CakePHP
RewriteRule     ^$      app/webroot/    [L]
RewriteRule     (.*)    app/webroot/$1  [L]

これは以前のホストでは問題なく機能していましたが、HostGator に移行してから、#ignore の下の 2 つのルールが機能しなくなりました。異なることを試みているため、2 つしかありません。

基本的にすべてのリクエストは app/webroot に送信されますが、「slir」というフォルダーを除外したいのです。

2 番目の 2 つのルールは機能するのに、最初の 2 つは機能しなくなったのはなぜでしょうか?

ありがとう。

4

3 に答える 3

0

最終的には、/slir/ 内の htaccess ファイルに次のものがあったためです。

# Prevent other scripts from interfering with SLIR
php_value auto_prepend_file none
php_value auto_append_file none

2行にコメントした後、問題はなくなりました

于 2013-04-28T18:39:05.410 に答える
0

書き換えフラグskipを使用できます。一致が見つかった場合は、次の書き換えルールをスキップします。

RewriteEngine on
Options +FollowSymlinks

# If we have a match for slir anywhere in the REQUEST_URI
# (case insensitive based on NC in supplied code)
RewriteCond %{REQUEST_URI} [sS][Ll][Ii][Rr]
# then skip 1 rule.
RewriteRule .? - [S=1]
#Match 0 or any character + and rewrite the URL.
RewriteRule ^(.*)$ app/webroot/$1 [L]
于 2013-04-28T17:25:56.777 に答える