在PHP中使用htaccess使用虚荣个人资料网址

时间:2019-03-03 23:10:02

标签: php .htaccess

我有.htaccess个文件,profile.phpindex.phptest.php

假设我们有用户john

如果我要访问网站http://example.org/john,则可以看到john的个人资料。 但是,如果我将转到index.phptest.php,则页面出现错误404,但不应出现。似乎htaccess文件中的代码使每页崩溃。

如何修复profile.php.htaccess文件以获取:

  1. 如果http://example.org/john不存在,则在同一页面上显示404错误(如果存在)-显示此配置文件
  2. 应该显示其他页面(如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';

}

1 个答案:

答案 0 :(得分:0)

您无法从php执行回到Apache。

您应该交换RewriteRules,以便首先执行php文件,然后执行配置文件。

在不需要其他重写的规则之后添加L。

查看http://php.net/manual/en/function.header.php,以发送正确的404响应。将404设置为第三个参数。