2013-12-05 3 views
-2

Я пытаюсь, чтобы мои страницы, доступные с example.com/about, example.com/contacts вместо example.com/about.php & example.com/contact.phpURL, имена страниц без расширения

Я не знаю, как это делается, но я был в состоянии сделать это путем создания ссылки

<a href='site.com/about'> about </a> 

И у меня index.php набор как

$URI = $_SERVER['REQUEST_URI']; 
switch($URI){ 
    case '/about'; 
    include 'about.php'; 
    break; 
    case '/contact'; 
    include 'contact.php'; 
    break; 
    //... 
} 

Теперь, спрашивая, если это хороший способ, мой вопрос будет закрыт как объективный вопрос. Но я хотел бы знать, как это делается, или, точнее, как все это делают.

+0

Обычно через .htaccess URL Переписывание. И нет, оператор switch - это плохой способ справиться с этим. –

+0

Но, как? и что не так с тем, как я это делаю. Я уверен, что делать это с '.htaccess' будет немного замедлять скорость страницы, как вы думаете? – ANW

+0

На вопрос о том, как справиться с этой проблемой, есть миллиард связанных вопросов. Поиск вокруг, вы найдете ТОН информации –

ответ

0

Я использую это в .htaccess

/бэ идет в /blah.php и т.д. Это не медленнее, чем загрузка страницы PHP, а затем загружаются в там.

RewriteEngine On 
# Redirect external .php requests to extensionless url 
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(.+)\.php$ http://WEBSITE.com/$1 [R=301,L] 

# Resolve .php file for extensionless php urls 
RewriteRule ^([^/.]+)$ $1.php [L] 
Смежные вопросы