Как заменить http://site/index.php на http://site/index ?

12
B7
На сайте с 16.03.2009
Offline
46
2105

как переписать адрес вида: http://site/index.php на http://site/index ?

Т.е. по сути требуется лишь убрать .php в адресе любой страницы.

Как это проще всего сделать (через mod_rewrite или еще как)?

заранее спасибо!

S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#1

На сколько я знаю это нужна ЧПУ

Попробуй Artio JoomSEF, говорят не плохая тема, сам не пробовал

pikasso
На сайте с 27.01.2008
Offline
150
#2
bimmer777:
как переписать адрес вида: http://site/index.php на http://site/index ?
Т.е. по сути требуется лишь убрать .php в адресе любой страницы.

Как это проще всего сделать (через mod_rewrite или еще как)?

заранее спасибо!

Вот вам визард для генерации .htaccess. Пользуйтесь на здоровье.

alexspb
На сайте с 14.11.2005
Offline
187
#3

отрезайте окончание ($ - конец урла)

RewriteEngine On

RewriteRule ^(.*)\.php$ $1 [L]

или вам вообще надо тупо для одного урла?

RewriteEngine On

RewriteRule ^/index\.php$ index [L]

правда непонятна задача...

B7
На сайте с 16.03.2009
Offline
46
#4
alexspb:
отрезайте окончание ($ - конец урла)

RewriteEngine On
RewriteRule ^(.*)\.php$ $1 [L]

или вам вообще надо тупо для одного урла?
RewriteEngine On
RewriteRule ^/index\.php$ index [L]

правда непонятна задача...

задача конкретная - хочу чтобы пользователь видел все страницы на сайте без ".php" в конце.

Например вместо: http://site/vopros.php нужно отобразить http://site/vopros

Попробовал сделать как Вы сказали, скопировал в htaccess,

НО НЕ РАБОТАЕТ ни 1-й ни 2-й вариант почему-то!

Unabashed
На сайте с 17.11.2006
Offline
70
#5

bimmer777, htaccess в правильной кодировке? Заливался в text mode?

B7
На сайте с 16.03.2009
Offline
46
#6
Unabashed:
htaccess в правильной кодировке? Заливался в text mode?

пользуюсь cute ftp. Там стоит режим ascii

SEXCRIME
На сайте с 18.11.2009
Offline
8
#7

А в чём выражается неработоспособность? Просто не работает как вам хочется или выскакивает ошибка?

Всё для WEB мастера (http://wm-i.net)
alexspb
На сайте с 14.11.2005
Offline
187
#8

bimmer777, так вам надо перенаправлять без .php на сам файл?

RewriteEngine On
RewriteCond %{REQUEST_URI} !\.php$
RewriteRule ^/(.*)$ $1\.php [L]

У себя проверил - работает. Но требуется обязательно наличие соответствующего файла .php

если все перенаправлять на один файл, то можно иначе:

RewriteEngine On
RewriteCond %{REQUEST_URI} !\.php$
RewriteRule ^(.*)$ index.php?id=$1 [L]

в самом файле index.php можете прописать

<?
Error_Reporting(E_ALL & ~E_NOTICE);
echo ': '.$_GET['id'];
?>

Только думаю, что вы мудрите что-то непонятное.

Jensi
На сайте с 30.11.2009
Offline
74
#9

Если мало страниц, то так можно:

RewriteRule ^index(/?)$ index.php

или с DirectoryIndex, но я в этом почти не уверен:

DirectoryIndex index.php

Вариант от alexspb понравился:)))

alexspb
На сайте с 14.11.2005
Offline
187
#10
Jensi:
или с DirectoryIndex, но я в этом почти не уверен

И правильно неуверены - это для обращений вида site.ru/dir/

а в приведенном выше примере нет еще проверки на картинки и т.п. - т.е. будет любой файл перебрасывать по правилу, поэтому надо добавлять нужные условия (RewriteCond)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий