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

Форум Apache

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

 

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

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

тема: Универсальный RewriteRule для .htaccess
 
 автор: Yustys   (08.04.2014 в 20:47)   письмо автору
 
 

Здравствуйте, появилась задача, на первый взгляд не из сложных, но, как оказалось, никто до сих пор не смог ее решить. У меня этого сделать тоже не выходит.

Нужно чтобы по ссылке www.site.ru/blabla посредством .htaccess открывалась индексная страница с переменной str=blabla:

RewriteRule ^blabla$ /index.php?str=blabla [L]

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

RewriteRule ^([^/]+)?$ /index.php?&str=$1 [L]

Перепробовал самые разные варианты, ничего не работает. Помогите люди добрые.

  Ответить  
 
 автор: cheops   (08.04.2014 в 21:54)   письмо автору
 
   для: Yustys   (08.04.2014 в 20:47)
 

А так?

RewriteRule ^(.*)$ /index.php?&str=$1 [L]

Это должно быть одно правило, вся работа по роутингу берет на себя приложение.

  Ответить  
 
 автор: Yustys   (08.04.2014 в 22:00)   письмо автору
 
   для: cheops   (08.04.2014 в 21:54)
 

Огромное спасибо, сейчас буду пробовать.

  Ответить  
 
 автор: Yustys   (08.04.2014 в 22:02)   письмо автору
 
   для: cheops   (08.04.2014 в 21:54)
 

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, admin@example.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13 Server at korund Port 80

  Ответить  
 
 автор: cheops   (08.04.2014 в 22:10)   письмо автору
 
   для: Yustys   (08.04.2014 в 22:02)
 

Покажите весь .htaccess, добавляете условия игнорирования физических файлов и директорий?

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /index.php?&str=$1 [L]

  Ответить  
 
 автор: Yustys   (08.04.2014 в 22:14)   письмо автору
 
   для: cheops   (08.04.2014 в 22:10)
 

AddDefaultCharset utf-8
Options -MultiViews
Options +FollowSymLinks
# unicode support
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^global$ /index.php?str=global [L]
RewriteRule ^catalogue/([^/]+)/page([^/]+)?$ /index.php?slepok=$1&ap=$2&str=catalogue [L]
RewriteRule ^lot/([^/]+)/?$ /lot.php?str=lot&xparam=$1 [L]
RewriteRule ^portfolio/page([^/]+)?$ /index.php?ap=$1&str=portfolio [L]
RewriteRule ^dot/([^/]+)/?$ /dot.php?str=dot&xparam=$1 [L]
RewriteRule ^relationship$ /index.php?str=relationship [L]
RewriteRule ^relationship/([^/]+)/?$ /index.php?str=relationship&xparam=$1 [L]
RewriteRule ^article/page([^/]+)?$ /index.php?ap=$1&str=article [L]
RewriteRule ^art/([^/]+)/?$ /art.php?str=art&xparam=$1 [L]
RewriteRule ^produkcija$ /index.php?str=produkcija [L]
RewriteRule ^video$ /index.php?str=video [L]
RewriteRule ^dokumenty$ /index.php?str=dokumenty [L]

RewriteRule ^(.*)$ /index.php?&str=$1 [L]

  Ответить  
 
 автор: cheops   (08.04.2014 в 22:15)   письмо автору
 
   для: Yustys   (08.04.2014 в 22:14)
 

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

  Ответить  
 
 автор: Yustys   (08.04.2014 в 22:15)   письмо автору
 
   для: cheops   (08.04.2014 в 22:10)
 

Теперь работает!!! Огромное спасибо, уже довольно долго пытаюсь решить эту проблему. Очень Вам благодарен!

  Ответить  
 
 автор: cheops   (08.04.2014 в 22:16)   письмо автору
 
   для: Yustys   (08.04.2014 в 22:15)
 

Тема действительно не простая, главное почти нигде толком не описана. Стараются оставить только одно правило, которое вы получили, и избавиться от всех остальных правил, перенося их логику внутрь приложения.

  Ответить  
 
 автор: Yustys   (08.04.2014 в 22:29)   письмо автору
 
   для: cheops   (08.04.2014 в 22:16)
 

Да, я теперь все лишнее убрал, получилось локанично и функционально. Еще раз спасибо.

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

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