-1

すべてのリクエストを /public/index.php にリダイレクトする htaccess ファイルがあります。

AuthType Basic
AuthName "Access to /testsite"
AuthUserFile /kunden/homepages/28/d446685396/htpasswd
Require user oglover

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . public/index.php [L]

www.mywebsite.com/aboutus、www.mywebsite.com/contact、www.mywebsite.com/news など、すべてのリクエストに対して正常に機能します。エラー。新しい Web ホストに移動するまではすべて問題なく機能していましたが、これを修正する方法がわかりません。

4

1 に答える 1

0
RewriteRule . public/index.php [L]

このルールの正規表現である は.、「文字列内の任意の 1 文字」を意味します。これが問題の原因です。をリクエストするwww.mywebsite.com/と、正規表現は空の文字列と照合されます (マニュアルの何が照合されますか?を参照してください)。正規表現が一致しないため、ルールが適用されないため、サーバーはルートのインデックスを提供しようとしますが、これは禁止されています。

すべてに一致させるには、ルールを次のように変更します。

RewriteRule .* public/index.php [L]

.*「0 個以上の文字」を意味し、空の文字列に一致します。

于 2012-12-18T15:44:09.183 に答える