1

私は基本的に、次の .htaccess 行を使用して index.php からすべてを実行する自分用のカスタム フレームワークを開発しました。

RewriteRule .* index.php [QSA,L]

同じサーバー/ルート経由で実行する必要がある REST API を開発しました。次の URL を .htaccess に追加しようとしましたが、カスタム フレームワークに統合されたカスタム 404 でプロンプトが表示されました。基本的に、この行を無視して、カスタム フレームワークにRewriteRuleを使用しようとしています。

RewriteRule /api/v1/(.*)$ myAPI.php?request=$1 [QSA,NC,L]

API URLがクエリとして他のRewriteRuleに渡されないようにするにはどうすればよいですか

私の .htaccess は次のようになります

Options +FollowSymlinks
RewriteEngine on
RewriteOptions MaxRedirects=10

AddType "text/html; charset=UTF-8" html 
AddType "text/plain; charset=UTF-8" txt

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # if file not exists
    RewriteCond %{REQUEST_FILENAME} !-f

    # if dir not exists
    RewriteCond %{REQUEST_FILENAME} !-d

    # avoid 404s of missing assets in our script
    RewriteCond %{REQUEST_URI} !^.*\.(jpe?g|png|gif|css|js)$ [NC]

    # rest api url
    RewriteRule ^api/v1/(.*)$ /myAPI.php?request=$1 [QSA,NC,L]

    # core framework url rewriting
    RewriteRule .* index.php [QSA,L]
</IfModule>
4

1 に答える 1

1

ルールから先頭のスラッシュを削除します。

RewriteRule ^api/v1/(.*)$ /myAPI.php?request=$1 [QSA,NC,L]

.htaccessディレクトリ ディレクティブごとであり、Apache はRewriteRuleURI パターンから現在のディレクトリ パスを取り除きます。

于 2013-11-03T04:44:04.113 に答える