Я присоединяюсь к слову Sjoerd, но есть много способов, как вы можете переписать свой URL, как вы хотите!
Apache и (IIS тоже) поддерживают URL-адреса, как этот: http://example.com/index.php/my-rewritten-url_62
function URISegment($segment)
{
$uri_array = explode('/',$_SERVER['REQUEST_URI']);
$uri_count = count($uri_array);
$returning_uri = array();
for($i = 0;$i<$uri_count;$i++)
{
if(empty($uri_array[$i]) || $uri_array[$i] == "index.php")
unset($uri_array[$i]);
else
array_push($returning_uri,$uri_array[$i]);
}
if($segment < count($returning_uri))
return $returning_uri[$segment];
else
return false;
}
Это работает, но вам также нужно определить базовый URL-адрес, и его нужно вызывать в начале файла и реализовывать при каждом вызове изображения, сценария и т. Д.
function BaseURL()
{
if(isset($_SERVER['HTTP_HOST']))
{
$base = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on' ? 'https' : 'http';
$base .= '://'. $_SERVER['HTTP_HOST'];
$base .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
}
else
{
$base = 'http://localhost/';
}
return $base;
}
После этого вы можете использовать вместо этого:
// http://example.com/?MyKey=Some-data
$MyKey = $_GET['MyKey']; //which is the first item
echo $MyKey;
// results: Some-data
This:
// http://example.com/?MyKey=Some-data
$MyKey = URISegment(0);
echo $MyKey;
// results: Some-data
Вы получаете одинаковый результат по каждому.
PS:
Мне нравится это решение, потому что я могу смешивать типы URL по мере необходимости:
example.com/index.php/index/evaled-article?some=db-stored&code=snipplet
И, конечно, вы можете переписать свой URL, как сказал FRKT:)
И, конечно, если вы хотите скрыть index.php
, вам нужно использовать mod_rewrite, потому что нет никакого способа