2

server.com/site_admin/api に .htaccess を配置しました (実際のディレクトリ構造: /public_html/site_admin/api)

すべてのリクエストを対応する php ファイルに送信したいと考えています。したがって、api/users は api/users.php に書き換えます。

だから私はこのルールを書いた:

 RewriteEngine On
 RewriteRule ^(.*)$ $1.php 

しかし、うまくいきません。URL server.com/site_admin/users にアクセスすると 404 が返されます

そこに【R=301】を足したところ

 RewriteRule ^(.*)$ $1.php [R=301]

http://server.com/home/server_user/public_html/site_admin/api/users.php の代わりにhttp://server.com/site_admin/api/users.phpにリダイレクトされることがわかりました

誰かがここで私を助けてくれませんか

4

1 に答える 1

2

これを使って:

RewriteEngine On
RewriteCond %{REQUEST_URI} !php$
RewriteRule ^(.*)$ $1.php

書き換えられた URL がまだ に一致しているため、あなたのものは機能しません(.*)。そのため、エラーが発生するまで再度書き換えます。しかし、500 ではなく 404 が表示されるのは奇妙です...

2 つ目は、新しい GET リクエストを生成するため機能しません[R]。そのため、ホストを追加する必要があります。そうしないと、定義されたホストへの絶対パスが要求され、明らかに機能しません。[R] を使用する場合は、次を使用する必要があります。

RewriteRule ^(.*)$ http://server.com/site_admin/api/$1.php [R]

しかし、それはあなたの問題を解決しません。先ほど言ったように、新しい GET リクエストが生成さ.phpれ、ユーザーに表示されます。

于 2012-07-05T17:55:11.003 に答える