1

わかりました...私のタイトルは少し大げさです...

私のサイトは PHP で構築されており、「require_once」しようとしているすべてのファイルが読み込まれていません。私が変更した唯一のファイルは、.htaccess ファイルです。私は .htaccess について何も知りません。私が持っているのは、純粋に Web を検索したものです。なにが問題ですか?事前に助けてくれてありがとう。

RewriteEngine on

<Files 403.shtml>
order allow,deny
allow from all
</Files>
ReWriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
ReWriteRule !index.php index.php [L]

また、下の 2 行をコメントアウトすると、私のサイトはうまく機能します。

4

2 に答える 2

1

require_onceファイルとは何の関係もありません.htaccess。これは PHP ディレクティブであり、Apache ディレクティブではありません。ファイルのinclude_pathを正しく設定し、これらのディレクトリファイルがアクセス可能であることを確認する必要があります (つまり、適切な権限が設定されていること)。

failed から得たエラー メッセージを表示する場合はrequire、それを修正する方法について具体的なアドバイスを与える方がはるかに簡単です。

更新.php ファイルに対するすべての非 AJAX リクエストを にリダイレクトする必要がある場合は、次のようにする必要がありindex.phpます.htaccess

RewriteEngine on

RewriteCond %{HTTP:x-requested-with} ^XMLHttpRequest$
RewriteRule . - [L]

RewriteCond %{REQUEST_FILENAME} !-d
ReWriteRule .php$ index.php

これは基本的に次のことを意味します。

.php (または同様のチェック) をチェックしないと、index.phpすべてのスクリプト読み込み手順にリダイレクトされます。そして、外部のCDNからそれをしない限り、それはあなたの場合にはうまくいきません. )

于 2012-09-13T21:50:39.537 に答える
0

最後の 2 行を次のように変更してみてください。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

URL を次のようにしたい場合 (おそらくそうなります):

http://yoursite.com/some/path/somewhere

次に、最後の行を次のように変更します。

RewriteRule ^([^/]*)(.*)$ index.php?first=$1&second=$2

それが達成したい場合は、次のことを確認してください。

http://yoursite.com/about

実際には about と呼ばれるフォルダーがないこと、この行:

RewriteCond %{REQUEST_FILENAME} !-d

「about」という名前のフォルダーが存在するかどうかを確認します。存在する場合、ページはリダイレクトされません。ファイルについても同じことが言えます。たとえば、次のように移動します。

http://yoursite.com/about.html

about.html が実際に存在する場合、ページはリダイレクトされません。

それが理にかなっていることを願っています。

さらに詳しい情報が必要な場合は、http://jrgns.net/content/redirect_request_to_indexがかなり簡潔で役立つようです。

于 2012-09-13T22:01:10.763 に答える