尝试在URL中的斜杠后获取ID导致404 Not found

时间:2013-10-24 13:35:14

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

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

mysite.com/ID

现在,当我在斜线后面放入ID时,它会给我404找不到。

此代码在斜杠和完整网址后获取ID:


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

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

但问题是它显示404 Not found,当我在斜线后放入ID。这是我必须在我的.htaccess中改变的吗?

1 个答案:

答案 0 :(得分:1)

您需要将http://site.com/id网址重定向到.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]