0

ローカルのWindowsマシンにApacheとPHPがあり、.htaccessルールは正常に機能します。すべてのファイルをLinuxサーバーにアップロードしたところ、異なる結果が得られました。LinuxVPSを完全に制御できます。共有ホスティングなどではありません。すべてのリクエストが送信されるファイルshowme.phpを作成しました。showme.phpは、いくつかの$ _SERVER変数を出力するだけなので、機能したことがわかります。しかし、サーバーへのすべてのリクエストは、404が見つかりませんでした。同じリクエストがローカルでshowme.phpを提供します。

-ローカルの例:http:// localhost / somepage(showme.phpによってレンダリングされた正しいページを取得します)

-サーバーの例: http: //mydomain.com/somepage (404メッセージが表示されます)

これが私の.htaccessファイルです。なぜ違う結果が得られるのか理解できません。ファイルパーミッションのあるものはありますか?

# AddType x-mapp-php5 .php
# AddHandler x-mapp-php5 .php

RewriteEngine on
Options +FollowSymlinks

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . showme.php [L]

ErrorDocument 404 /page-unavailable/

<files ~ "\.tpl$">
order deny,allow
allow from none
deny from all
</files>
4

2 に答える 2

0

(通常は構成下で)を使用phpinfo()して検索すると、を使用mod_rewriteできるかどうかがわかりますRewriteRulesIfModuleこれが通常、リライトがラップされているのを見る理由です。

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . showme.php [L]
</IfModule>
于 2012-11-22T16:09:44.230 に答える
0

答えは、私のhttpd.confで、AllowOverrideAllを1つの特定の場所に設定する必要があるということでした。それは特定のディレクトリにありましたが、デフォルトではないと思います。

于 2012-11-22T16:22:28.250 に答える