Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: htaccess в lighttpd  (Прочитано 2611 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Konoplev Roman

  • Автор темы
  • Любитель
  • *
  • Сообщений: 65
  • http://konoplev-lab.ru
    • Просмотр профиля
    • Лаборатория Романа Коноплева
htaccess в lighttpd
« : 24 Октября 2011, 00:39:34 »
Доброго времени суток!
Есть файлик из сайта, что на сервере с Apache, зовут его htaccess и служит он там для организации ЧПУ ссылок и многого другого. Вот его примерный код:

AddDefaultCharset UTF-8
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_flag register_globals Off
ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
Options -Indexes

# php_value error_reporting 2047
# php_value error_log "/var/www/log/error.log"
# php_flag log_errors on
# php_flag display_errors off

RewriteEngine    on
RewriteBase /

RewriteRule ^admin/(.*)$ admin/index.php?route=$1 [L,QSA]

RewriteCond %{REQUEST_URI} !^/admin

RewriteCond %{REQUEST_URI} !^/favicon.ico
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]

И нужно как-то эти правила применить для сайта, лежащего на сервере с lighttpd.
Гугление дало, что такие строчки

RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
можно заменить на

url.rewrite-once = (
    "^(.*)$" => "index.php?route=$1"
)

В конфиге лайти. И это срабатывает, но как только добавляю по похожему принципу

"^admin/(.*)$" => "admin/index.php?route=$1"
для

RewriteRule ^admin/(.*)$ admin/index.php?route=$1 [L,QSA]
работать тут же перестает.

Да и это тем более всего 2 строки из htaccess, а там их перевести еще много надо... )-:
Искренне надеюсь на вашу помощь.
С уважением,
Коноплев Роман konoplev.roma@gmail.com,
Веб-разработчик, http://konoplev-lab.ru/

Оффлайн xeon_greg

  • Активист
  • *
  • Сообщений: 981
    • Просмотр профиля
Re: htaccess в lighttpd
« Ответ #1 : 24 Октября 2011, 10:18:17 »
не знаком с конфигами лайта, но могу сказать, что, во-первых важен порядок правил, во-вторых
RewriteRule ^admin/(.*)$ admin/index.php?route=$1 [L,QSA] это правило безусловное,те выполняется всегда,
а это правило RewriteRule ^(.*)$ index.php?route=$1 [L,QSA] - условное
, те будет выполнятся при выполнении этих RewriteCond %{REQUEST_URI} !^/admin

RewriteCond %{REQUEST_URI} !^/favicon.ico
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
условий, из этого следует , что если ты не перевел в синтаксис лайта эти выше указанные условия, и не соблюдал порядок добавления правил, то при таком раскладе:
Цитировать
url.rewrite-once = (
    "^(.*)$" => "index.php?route=$1"
)

"^admin/(.*)$" => "admin/index.php?route=$1"
естественно 2е правило не будет выполнено никогда, так будет обработано первым единичым(rewrite-once) преобразованием

 

Страница сгенерирована за 0.017 секунд. Запросов: 22.