-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 等....但是如果我访问 www.mywebsite.com/ 我会收到 403 禁止错误。一切正常,直到我搬到一个新的网络主机,我不知道如何解决这个问题。

4

1 回答 1

0
RewriteRule . public/index.php [L]

此规则中的正则表达式., 表示“字符串中的任何单个字符”,这会导致您的问题。当您请求www.mywebsite.com/时,正则表达式与空字符串匹配(请参阅手册中的匹配内容?)。正则表达式不匹配,因此不应用规则,因此服务器尝试提供 root 的索引,这是被禁止的。

要匹配所有内容,请将规则更改为如下所示:

RewriteRule .* public/index.php [L]

意思是“.*零个或多个字符”,它确实匹配空字符串。

于 2012-12-18T15:44:09.183 回答