我正在尝试将不存在的网页重定向到我的index.php。
我使用此数据在与index.php相同的文件夹中创建了一个.htaccess文件。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
Rewritecond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
我正在使用Wampserver,而apache服务器的httpd.conf设置为
AllowOverride All
但是当我尝试输入一个不存在的网页时,我收到404错误。 有什么想法吗?
EDIT。 顺便说一句,我看过这篇文章HERE并尝试了那里的东西,但它对我没用。
答案 0 :(得分:3)
为什么不直接使用ErrorDocument指令?
ErrorDocument 404 index.php
它更简单,并且开销更少。
如果您坚持使用mod_rewrite,您可以使用De Morgan定律,并且在页面确实存在的情况下不关心它:无论如何它都会正常提供,您不需要执行显式的RewriteRule ^。 * $
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
Rewritecond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [NC,L]
那就是说,我认为您发布的片段应该有效。我根本不熟悉Wampserver,但似乎你必须明确enable the mod_rewrite module,你做过吗?
此外,将不存在的页面重定向到index.php,而不指示机器人或用户该页面不存在,这不是一个好主意。一个包含有效页面链接的漂亮错误页面将是更好的选择。