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

Форум Apache

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

 

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

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

тема: [htaccess] Переадресация запроса без редиректа
 
 автор: amster   (03.07.2011 в 18:27)   письмо автору
 
 

Есть сайт и страница на нем paga1.html

чел обращается к этой странице, но ему показывается содержимое, другой стрницы, например else.html
но в строке браузера по прежнему paga1.html (то есть внешнего редиректа нет, сервер просто взял содержимое другого файла)

Можно ли такое сделать с помощью htaccess?
Файлов типа paga1.html много и их править долго, если делать на php, а вот в htaccess большое количество файлов попроще добавить

  Ответить  
 
 автор: cheops   (03.07.2011 в 19:30)   письмо автору
 
   для: amster   (03.07.2011 в 18:27)
 

Можно начать отталкиваться от следующего .htaccess
RewriteEngine On 
RewriteBase / 
RewriteRule ^/paga1.html$ /else.html [L]

  Ответить  
 
 автор: amster   (04.07.2011 в 10:55)   письмо автору
 
   для: cheops   (03.07.2011 в 19:30)
 

Спасибо, подходит, а как можно сделать переадресовать таким образом все запросы к сайту на один файл, с передачей ему параметра ?q=запрошенный урл

  Ответить  
 
 автор: cheops   (04.07.2011 в 11:59)   письмо автору
 
   для: amster   (04.07.2011 в 10:55)
 

Абсолютно все запросы не получится, так как и конечный получившийся запрос будет обрабатываться правилами - нужно как-то разделить запросы и обработчик, обычно прибегают к разным папкам, в корне это практически не реально сделать.

  Ответить  
 
 автор: amster   (04.07.2011 в 12:01)   письмо автору
 
   для: cheops   (04.07.2011 в 11:59)
 

Исключения никак не добавить?
То есть все, кроме файла-обработчика?

  Ответить  
 
 автор: cheops   (04.07.2011 в 12:09)   письмо автору
 
   для: amster   (04.07.2011 в 12:01)
 

Можно, но нужно больше подробностей, как называется обработчик, какие обычно запросы.

  Ответить  
 
 автор: amster   (04.07.2011 в 12:17)   письмо автору
 
   для: cheops   (04.07.2011 в 12:09)
 

Сделал вот так, работает

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ all.php?q\*=$1 [L,QSA]


Как ещё можно добавить к исключениям, любую страницу, если присутствует GET параметр?

  Ответить  
 
 автор: cheops   (04.07.2011 в 13:03)   письмо автору
 
   для: amster   (04.07.2011 в 12:17)
 

Можно проверить содержимое переменной состояния QUERY_STRING и разрешать RewriteRule-правило, только если она пустая
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ all.php?q\*=$1 [L,QSA]

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

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