|
|
|
| Предположим, что файлы страниц имеют такие имена:
1.htm
2.htm
3.htm
Эти имена меня вполне устраивают, но хочется чтобы посетители их видели другими. Например так:
vova.htm
start.htm
stop.htm
То есть, чтобы посетитель набрал в адресной строке www.site.ru/vova.htm и получил содержимое страницы www.site.ru/1.htm
Возможно такое?
И куда при этом должны вести внутренние ссылки - на реальные имена файлов или на вымышленные?
============
Надеюсь, что при этом скрипты, определяющие имя файла из урла, по-прежнему будут видеть 1.htm ? | |
|
|
|
|
|
|
|
для: Владимир55
(04.11.2008 в 15:37)
| | > Возможно такое?
Да
> И куда при этом должны вести внутренние ссылки - на реальные имена файлов или на вымышленные?
А что такое "внутренние ссылки"? А тем, что Вы не хотите видеть различий между файлом (например, file://C:/folder/doc.htm) и обычным интернет-документом (http://example.com/doc.htm), Вы сами себя запутываете. По моему скромному, конечно. | |
|
|
|
|
|
|
|
для: BinLaden
(04.11.2008 в 16:17)
| | Вымышленные имена усложняют дело - согласен. Но это не баловство, тут есть достаточно серьёзная цель.
Так как это осуществить? | |
|
|
|
|
|
|
|
для: Владимир55
(04.11.2008 в 16:30)
| | Апатч -> mRewrite | |
|
|
|
|
|
|
|
для: Владимир55
(04.11.2008 в 16:30)
| | В раздел Апач - mod_rewrite или ЧПУ.
Простой пример
RewriteEngine On
RewriteBase /
RewriteRule ^portfolio/([a-z_]+)/?$ portfolio.php?sect=$1
|
protfolio.php - существующий скрипт | |
|
|
|
|
|
|
|
для: Владимир55
(04.11.2008 в 15:37)
| | Следовательно вам нужно:
RewriteEngine On
RewriteBase /
RewriteRule ^1.html$ vova.htm
RewriteRule ^2.html$ start.htm
RewriteRule ^3.html$ stop.htm
|
Хотя, если у вас таких страниц много, то это не выход... слишком долго вбивать в файл... | |
|
|
|
|
|
|
|
для: DEM
(04.11.2008 в 17:28)
| | Страниц 2000, но я их впишу, скриптом. Только не понял, куда вписывать - в .htaccess ? Или куда? | |
|
|
|
|
|
|
|
для: Владимир55
(04.11.2008 в 17:37)
| | Если использовать БД, то можно там в ячейке с VOVA рядом хранить 1.
При загрузке страницы vova.htm считывать название файла, находить его значение в бд (в нашем случае - 1) и загружать каким угодно методом внутри старницу 1.htm | |
|
|
|
|
|
|
|
для: Владимир55
(04.11.2008 в 15:37)
| | Блин, я че т если честно не вникнул в тему, а ответил по названию )))
Вам редирект нужен! | |
|
|
|
|
|
|
|
для: ddhvvn
(04.11.2008 в 17:38)
| | Я полагаю, что DEM написал что-то подходящее, только не раскрыл до конца свою идею... | |
|
|
|
|
|
|
|
для: Владимир55
(04.11.2008 в 19:06)
| | 2 DEM, а что такое RewriteBase, для чего применяете?
.htaccess
RewriteEngine On
RewriteRule ^([a-zA-Z0-9...]+)\.html$ page.php?name=$1
|
page.php
<?php
$name = isset( $_GET['name'] ) ? (string) $_GET['name'] : '';
# Зная имя нужно получить ... номер страницы
# Можно доставать из БД, например, как уже посоветовали
$number = 1;
# Вывод страницы
readfile( $number . '.html' );
?>
|
| |
|
|
|
|
|
|
|
для: BinLaden
(04.11.2008 в 19:20)
| | зачем человеку реврайт, если ему нужен редирект? хотя...
>а что такое RewriteBase
адрес, от которого будут "отталкиваться" правила.
т.е.
RewriteBase /
RewriteRule page/([0-9]+)/? page.php?id=$1 //означает /page/([0-9]+)/? ...
RewriteBase /page/
RewriteRule page/([0-9]+)/? page.php?id=$1 //означает /page/page/([0-9]+)/? ...
|
| |
|
|
|
|
|
|
|
для: ddhvvn
(04.11.2008 в 19:49)
| | > зачем человеку реврайт, если ему нужен редирект?
Это он сам Вам сказал? Вот лично я из слов:
> Эти имена меня вполне устраивают, но хочется чтобы посетители их видели другими
... понял другое. | |
|
|
|
|
|
|
|
для: BinLaden
(04.11.2008 в 20:54)
| | Редирект крайне нежелательно. Точнее, неприемлемо, поскольку могут быть проблемы с поисковиками.
А почему так не работает:
.htaccess
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html
RewriteEngine On
RewriteBase /
RewriteRule ^1.html$ vova.htm
RewriteRule ^2.html$ start.htm
RewriteRule ^3.html$ stop.htm
|
| |
|
|
|
|
|
|
|
для: Владимир55
(04.11.2008 в 21:04)
| | Тогда нужно писать наоборот:
RewriteRule ^vova\.htm$ 1.html
# и т.д.
|
P.S. Легких путей не ищете? :) | |
|
|
|
|
|
|
|
для: BinLaden
(04.11.2008 в 21:07)
| | "P.S. Легких путей не ищете?"
В каком смысле? | |
|
|
|
|
|
|
|
для: Владимир55
(04.11.2008 в 21:04)
| | Этот файл решает обратную задачу. | |
|
|
|
|
|
|
|
для: Trianon
(04.11.2008 в 21:08)
| | И так не работает:
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html
RewriteEngine On
RewriteRule ^vova.htm$ 1.htm
|
| |
|
|
|
|
|
|
|
для: Владимир55
(04.11.2008 в 21:14)
| | В даваемом Вам коде был слэш перед точкой.. мож он нужен?) | |
|
|
|
|
|
|
|
для: lorenberg
(05.11.2008 в 01:11)
| | Я прежде попробовал со слешем и с точкой. Не работает. Тогда предположил, что это помарка и сделал без них. | |
|
|
|
|
|
|
|
для: Владимир55
(05.11.2008 в 01:25)
| | А у Вас модреврайт работает вообще? Вдруг библиотека отключена просто... | |
|
|
|
|
|
|
|
для: lorenberg
(05.11.2008 в 04:16)
| | Да, работает. | |
|
|
|