我正面临一个小问题,导致我的网站发生冲突。当我在这个页面上/en/pagenotexists/
时,我怎么能简单地引用/en/404.php
?
我在.htaccess中使用以下指令:
ErrorDocument 404 /404.php
我试过这个解决方案但根本没用:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([a-z]{2})/ /$1/404.php [R=404,L]
答案 0 :(得分:0)
您需要删除R = 404:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([a-z]{2})/ /$1/404.php [R,L]
否则规则会将请求重定向到默认的404页面而不是规则的目的地。
答案 1 :(得分:0)
要使用正确的404.php
状态代码显示lang特定404
的内容,您可以使用此内部重写规则:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]{2})/ $1/404.php [L]
然后让你的/en/404.php
:
<?php
// return correct 404 status code
http_response_code(404);
// rest of the 404 handler content
?>