Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 尝试查看不存在用户的配置文件时显示404页_Php_.htaccess - Fatal编程技术网

Php 尝试查看不存在用户的配置文件时显示404页

Php 尝试查看不存在用户的配置文件时显示404页,php,.htaccess,Php,.htaccess,在我的网站中,用户配置文件的URL为mysite.com/user/username。我真正想做的是,URL应该是mysite.com/username。 我已经将这些代码行添加到htaccess文件中 RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?uname=$1 RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?uname=$1 现在我可以通过mysite.com/username联系用户。但错误是,现在404文档不起作用。

在我的网站中,用户配置文件的URL为mysite.com/user/username。我真正想做的是,URL应该是mysite.com/username。 我已经将这些代码行添加到htaccess文件中

RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?uname=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?uname=$1
现在我可以通过mysite.com/username联系用户。但错误是,现在404文档不起作用。如果我键入的url不存在,比如myste.com/dasdfsf,它不会得到404文档,因为它正在查找所有的数字和字母(以查找用户名),并给我
我为无效用户名创建的空白页。我希望它显示一个404页,如果该用户不存在

为什么要为无效用户名显示空白页?改为显示404页。

为什么要为无效用户名显示空白页?改为显示404页面。

重定向:

RewriteRule ^user/([a-zA-Z0-9_-]+)$ http://example.com/$1 [R=301,L]
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?uname=$1 [L] #use the L option to stop processing
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?uname=$1 [L]
要显示404,您需要设置一个404页面,并将逻辑添加到
user.php
以读取它

<?php
    if(!userExist()){
        header('Status: 404 Not Found');
        echo file_get_contents('404.php');
        exit;//do this if there is code below that assumes this is a valid user
    }
?>

重定向:

RewriteRule ^user/([a-zA-Z0-9_-]+)$ http://example.com/$1 [R=301,L]
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?uname=$1 [L] #use the L option to stop processing
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?uname=$1 [L]
要显示404,您需要设置一个404页面,并将逻辑添加到
user.php
以读取它

<?php
    if(!userExist()){
        header('Status: 404 Not Found');
        echo file_get_contents('404.php');
        exit;//do this if there is code below that assumes this is a valid user
    }
?>


Yep:
if(!$user_存在)头('HTTP/1.0 404未找到');包括“error_404.php”是:
如果(!$user_存在)头('HTTP/1.0 404未找到');包括“error_404.php”我会避免重定向,发送404头和302,再加上让用户丢失地址栏中的位置,这是有问题和糟糕的UX。事实上!这将发送404状态并设置位置HTTP头。爬虫将获得他们想要的404状态,浏览器很可能跟随位置标题。但是,正如你所说,这并不理想,这就是为什么我给了他两个解决方案。404和回显404页面或404和发送404页面的位置。我经常听到人们问如何进行“404重定向”,只是试图阻止它。当你可以简单地从你想要重定向到的页面加载内容时,你为什么要重定向呢?我自己不使用重定向。我只是想给人们一些选择。但是,为了帮助您根除它,我将编辑我的答案。:)标题('Location:'oops.html');为我工作。但是它重定向而不获取内容。我会避免重定向,发送404头和302,再加上让用户丢失地址栏中的位置,这是有问题的和糟糕的UX。事实上!这将发送404状态并设置位置HTTP头。爬虫将获得他们想要的404状态,浏览器很可能跟随位置标题。但是,正如你所说,这并不理想,这就是为什么我给了他两个解决方案。404和回显404页面或404和发送404页面的位置。我经常听到人们问如何进行“404重定向”,只是试图阻止它。当你可以简单地从你想要重定向到的页面加载内容时,你为什么要重定向呢?我自己不使用重定向。我只是想给人们一些选择。但是,为了帮助您根除它,我将编辑我的答案。:)标题('Location:'oops.html');为我工作。但它会重定向,而不会获取内容