Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: .htaccess перенаправление
 
 автор: mikha   (15.09.2013 в 15:06)   письмо автору
 
 

Провозился пол дня((
В папке pages хранятся html файлы, к примеру zzz.html и xxx.html
Надо что бы они были доступны как http://site.ru/zzz и http://site.ru/xxx
Родил пока вот это
RewriteEngine On
RewriteBase /

RewriteRule ^(.*?)([^\/]*).html$ $2 [R=301,L]

RewriteCond %{REQUEST_URI} ^/([^\/]+)$
RewriteCond %{DOCUMENT_ROOT}/pages/%{REQUEST_URI}.html -f
RewriteRule ^(.+)$ pages/$1.html [L,QSA]

По отдельности работают, объеденить не получается.
Ну и до кучи, если файла в папке не находит, отдавать что страница не найдена
Забыл сказать, что бы http://site.ru/pages/zzz.html перенаправлялось на http://site.ru/zzz но отображался файл, не урл! http://site.ru/pages/zzz.html

  Ответить  
 
 автор: mikha   (15.09.2013 в 19:41)   письмо автору
 
   для: mikha   (15.09.2013 в 15:06)
 

Пришёл пока вот к этому
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} "^(GET|POST|HEAD) /pages/(.*).html HTTP/[0-9.]+$"
RewriteRule ^pages/(.*).html$ $1 [R=301,L]

RewriteCond %{THE_REQUEST} "^(GET|POST|HEAD) /(.*).html HTTP/[0-9.]+$"
RewriteRule ^(.*)\.html$ $1 [R=301,L]

RewriteCond %{DOCUMENT_ROOT}/pages/%{REQUEST_URI}.html -f
RewriteRule ^([^\.]+)$ pages/$1.html [L,QSA]

ErrorDocument 404 /404.html

Вроде работает. Попинайте плиз

  Ответить  
 
 автор: mikha   (15.09.2013 в 21:14)   письмо автору
 
   для: mikha   (15.09.2013 в 19:41)
 

В общем в очередной раз переделал. index.php оказался в корне, остальное в папке
DirectoryIndex index.php
Options -Indexes
RewriteEngine On
RewriteBase /

RewriteRule ^index.php$ / [R=301,L]
RewriteRule ^index$ / [R=301,L]

RewriteCond %{THE_REQUEST} "^(GET|POST|HEAD) /pages/(.*)\.html HTTP/[0-9.]+$"
RewriteRule ^pages/(.*)\.html$ $1\.html [R=301,L]

RewriteCond %{THE_REQUEST} "^(GET|POST|HEAD) /(.*)\.html HTTP/[0-9.]+$"
RewriteRule ^(.*)\.html$ $1 [R=301,L]

RewriteCond %{DOCUMENT_ROOT}/pages/%{REQUEST_URI}\.html -f
RewriteRule ^([^\.]+)$ pages/$1\.html [L,QSA]

ErrorDocument 404 /404.html

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования