私はLuracast Restlerライブラリを使用してAPIを開発しています。私が探しているのは、RESTfulなAPI標準を維持するためにindex.phpを自分のURLから「隠す」ようにすることだけです。 NOTE !:はい私はmod_rewriteを有効にしています。そして、はい、ディレクトリに.htaccessファイルがあります。これを私のマシンで行うことは問題ありませんでしたが、いくつかの基本的なテストのために実稼働環境に移行するときに、.htaccessファイルが異なって動作しているように見えます。Luracast Restler .htaccessがmod_rewriteを有効にしてリクエストを書き換えない
私の開発マシンと私のプロダクションマシンの両方でウィンドウが実行されています。どちらも複数の仮想ホストを使用します。どちらもmod_rewriteを有効にしています。
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^$ index.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
<IfModule mod_php5.c>
php_flag display_errors Off
</IfModule>
私たちは、httpd.conf内の同じディレクトリ設定を持っている:
私の.htaccessファイルは、文字通り供給の例である
<directory "C:\www">
Options FollowSymLinks -Includes -ExecCGI -Indexes -SymLinksIfOwnerMatch
order allow,deny
Allow from all
AllowOverride All
</directory>
そして、この構成では、私の開発マシン上で素晴らしい作品。私はそれを本番環境に移行するときに、index.phpファイルにリクエストを提供するために、URLにindex.phpが必要です。 URLからindex.phpを削除すると、Apacheから(Restlerレスポンスではなく)404が取得されます。私はまた、Apacheのログにこのエラーが表示されます。
File does not exist: C:/www/api_website_com/public/classname/function
それは、この.htaccessファイルがindex.phpに直接私のHTTPリクエストを書き換えると、それがファイルであるかのようにURLを探していませんしなければならないというのが私の理解です。誰にも考えがありますか?それは私が見落としているシンプルなものでなければなりません。
プロダクションサーバーのhttpd.confにアクセスできないため、RewriteLogを有効にすることはできません。
Luracast Restler Issuesの[This thread](https://github.com/Luracast/Restler/issues/36)のページには、いくつかの点があるかもしれません。見てみな! – Luracast
残念ながら、そのうちの誰も問題を解決できませんでした。これは、index.phpへのすべての要求を指すリライトがリクエストを適切に書き換えていないかのように見えます.- Apacheは依然として実際のファイルパスを探しています。 – Kevin
解決済み。どうやら、誰かがhttpd.confに "AccessFileName htaccess.txt"という行を入れてしまいました。 – Kevin