【问题标题】:Trying to get ID after slash in URL causing 404 Not found尝试在 URL 中的斜杠后获取 ID 导致 404 Not found
【发布时间】:2013-11-03 06:07:01
【问题描述】:

我试图在最后一个斜杠/ 之后获取 URL 的 ID。网址如下所示:

mysite.com/ID

现在,当我在斜线后面加上 ID 时,它给了我 404 Not found.

这段代码让我得到斜杠后的 ID 和完整的 URL:


$url = $_SERVER['REQUEST_URI'];
echo "$url<br />";

$fullurl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo $fullurl;

但问题是它显示 404 Not found,当我把 ID 放在斜线后面时。我的.htaccess 有什么需要更改的吗?

【问题讨论】:

    标签: php .htaccess url http-status-code-404 slash


    【解决方案1】:

    您需要将您的http://site.com/id URL 重定向到您的.php 文件

    RewriteEngine on
    RewriteBase /
    
    RewriteCond %{REQUEST_FILENAME} !-d # not a dir
    RewriteCond %{REQUEST_FILENAME} !-f # not a file
    RewriteRule ^(.*?)/?$ index.php?id=$1 [L]
    

    id 现在可以在 PHP 中作为 $_GET["id"] 使用。如果您想将此限制为数字,请使用

    RewriteRule ^(\d+)/?$ index.php?id=$1 [L]
    

    如果您想将/any/path/any/page.php 传递给您的 PHP 文件,请使用

    RewriteRule ^(.*)$ index.php?uri=$1 [L]
    

    【讨论】:

      猜你喜欢
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      相关资源
      最近更新 更多