我有.htaccess
个文件,profile.php
,index.php
和test.php
。
假设我们有用户john
如果我要访问网站http://example.org/john
,则可以看到john
的个人资料。
但是,如果我将转到index.php
或test.php
,则页面出现错误404,但不应出现。似乎htaccess文件中的代码使每页崩溃。
如何修复profile.php
和.htaccess
文件以获取:
http://example.org/john
不存在,则在同一页面上显示404错误(如果存在)-显示此配置文件test.php
)代码:
.htaccess
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
DirectorySlash Off
RewriteRule ^([A-Za-z0-9\._\-]+)[^.]$ profile.php?user=$1 [NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /$1.php [NC,END]
profile.php
<?php
if ($_GET['user'] != '') {
echo 'Showing user profile';
} else {
echo '404 error';
}
答案 0 :(得分:0)
您无法从php执行回到Apache。
您应该交换RewriteRules,以便首先执行php文件,然后执行配置文件。
在不需要其他重写的规则之后添加L。
查看http://php.net/manual/en/function.header.php,以发送正确的404响应。将404设置为第三个参数。