0

次のルールを持つ.htaccessファイルがあります。

RewriteRule ^api\/([A-Za-z0-9\-]+)\/?([0-9=a-zA-Z%]+)?\/?$   api.php?service=$1&param=$2 [QSA,L]

何らかの理由で、私のホストでは機能していますが、ローカルの LAMP インストールでは機能していません。私が間違っていることはありますか?

Apache バージョン: Apache/2.2.22 (Ubuntu)

エラー メッセージ: 404 Not Found (「要求された URL /api/word/search/ は、このサーバーで見つかりませんでした。」)

編集: 機能している別の書き換えルールがあるため、mod_rewrite モジュールがアクティブ化されます。

RewriteRule ^([a-z]+)\.page$    index.php?template=$1 [QSA,L]

Apache サイトの構成は (ローカルで):

DocumentRoot /var/www/Development-Env
<Directory />
        Options FollowSymLinks
        AllowOverride All
</Directory>
<Directory /var/www/Development-Env/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
</Directory>

編集 #2一致させようとしていhttp://localhost/api/service/method/ます。

4

2 に答える 2

1

あなたの質問のthis によるとOptions Indexes FollowSymLinks MultiViews、問題は MultiViews が有効になっていることだと思います。

書き換えルール セットの上に次の行を追加してみてください。

Options +FollowSymlinks -MultiViews

于 2013-02-28T16:05:17.850 に答える
1

apache mod rewrite が有効になっていないか、htaccess が許可されていない可能性があります。その前に忘れないで

RewriteEngine On

あなたも試すことができますRewriteRule ^api/(.*)/(.*)$ api.php?a=$1&d=$2 [NC]

男はあなたがAPIを持っている必要がある場合はcodeigniterを使用します私はこれを使用しました

http://net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/

于 2013-02-28T14:51:10.053 に答える