@Evgeniuster

Как вернуть .php в конце адреса страницы?

Здравствуйте!
Подскажите пожалуйста, как вернуть расширение файла в конце адреса.
Сайт с одной точкой входа.
Сейчас он убирает расширение файлов в адресной строке.

Индексный файл выглядит вот так
<?
$params = array();
$query_string = str_replace("page=","",trim($_SERVER['QUERY_STRING']));
$query_string = urldecode($query_string);
$query_params = explode("/",$query_string);
foreach ($query_params as $query_param)
	if ($query_param != "")
		$params[] = mysql_escape_string($query_param);
?>
<?	
if (count($params) == 0) $params[0] = "main";
	require_once file_exists('modules/' . $params[0] . '.php')
	? 'modules/' . $params[0] . '.php' : 'modules/404.php'; 
?>

.htaccess выглядит вот так
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1 [L]
AddDefaultCharset utf-8
AddType 'text/html; charset=utf-8' .html .htm .shtml
AddHandler application/x-httpd-php .html .htm .js


как-то в давнем проекте удалось победить... а сейчас все перепробовал, не могу сделать...
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 1
daager
@daager
Вот же: RewriteRule ^(.*)$ index.php?page=$1 [L]
Любой запрос отправить в виде параметра.
Уберите:
RewriteEngine On #включить mod_rewrite
RewriteBase / #базовый url
RewriteCond %{REQUEST_FILENAME} !-f  #все <b>существующие</b> файлы не будут обрабатываться регуляркой
RewriteCond %{REQUEST_FILENAME} !-d #все <b>существующие</b> папки не будут обрабатываться регуляркой
RewriteRule ^(.*)$ index.php?page=$1 [L] #перенаправляем то, что подходит под регулярку в виде GET-параметра


Но PHP код сломается и небезопасен, ибо подключать что угодно, по url это так себе.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы