htaccess 添加超过 3 个规则时显示错误 500
htaccess displays error 500 when adding more than 3 rules
这是我的 htaccess:
Options All -Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^home index.php
RewriteRule ^register register.php
RewriteRule ^rules rules.php [L]
当我向 htaccess 添加第四条规则时 returns 500 错误。
所以 htaccess 只允许 3 个重写规则?
第一件事是,当您收到错误时,您应该始终检查您的 Apache error_log 文件。它会给你错误的具体原因。我们只会猜测您的问题可能是什么。
现在这可能不是 "the" 问题,但是 RewriteCond
仅适用于紧随其后的 RewriteRule
。您不能对所有规则使用相同的条件。您还应该养成在规则上使用 [L]
标志的习惯,以防止它在匹配后读取下一条规则。
Options All -Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^home/?$ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^register/?$ register.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^rules/?$ rules.php [L]
这是我的 htaccess:
Options All -Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^home index.php
RewriteRule ^register register.php
RewriteRule ^rules rules.php [L]
当我向 htaccess 添加第四条规则时 returns 500 错误。 所以 htaccess 只允许 3 个重写规则?
第一件事是,当您收到错误时,您应该始终检查您的 Apache error_log 文件。它会给你错误的具体原因。我们只会猜测您的问题可能是什么。
现在这可能不是 "the" 问题,但是 RewriteCond
仅适用于紧随其后的 RewriteRule
。您不能对所有规则使用相同的条件。您还应该养成在规则上使用 [L]
标志的习惯,以防止它在匹配后读取下一条规则。
Options All -Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^home/?$ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^register/?$ register.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^rules/?$ rules.php [L]