|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » mod_rewrite etc. |
|
mod_rewrite etc.
|
Ветеран Сообщения: 1864 |
Профиль | Отправить PM | Цитировать Вот только недавно познакомился с этим замечательным модулем
Вот что я вынес из данного знакомства-с помощью mod_rewrite можно: 1) Самое распространённое использование-перезапись урлов, например есть урл index.php?forum=webmaster&topic=45 можно переписать в index.php/webmaster/45, что для некоторых поисковых машин намного более лучший вариант 2)запретить доступ к определённому файлу RewriteRule ^file.ext$ - [F] 3)запретить доступ определённому браузеру, сборщику почты, доступ с определённого айпи или пришедшим с определённого сайта RewriteCond %{HTTP_USER_AGENT} ^Browser_Name [OR] RewriteCond % {REMOTE_HOST} ^www.badsite.com$ [OR] RewriteCond % {REMOTE_ADDR} ^169.45.23.01$ RewriteRule ^.*$ - [F] Это было самое распространённое применение данного модуля, но есть ещё много всяких интересных хитростей: наприсер я недавно нашёл такое применение-при вызове страницы pic.html, нужно показывать картинку дня, поэтому можно переписать этот урл в pic-06-06.html c помощью серверных переменных TIME_MON и TIME_DAY RewriteRule ^pic.html$ pic-%{TIME_MON}-%{TIME_DAY}.html Или ещё кому нравится можно переписать файл index.php кому очень захочется в index.bmp Если кто ещё знает интересные применения данного модуля, то постите тут |
|
------- Отправлено: 14:41, 06-06-2004 |
Deadooshka Сообщения: 2482
|
Профиль | Отправить PM | Цитировать |
Отправлено: 14:39, 30-11-2009 | #121 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 118
|
Профиль | Отправить PM | Цитировать Sham, не помогает
Также и ставится два расширения. Вот весь мой htaccess ## # @version $Id: htaccess.txt 10492 2008-07-02 06:38:28Z ircmaxell $ # @package Joomla # @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. # @license http://www.gnu.org/copyleft/gpl.html GNU/GPL # Joomla! is Free Software ## ##################################################### # READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE # # The line just below this section: 'Options +FollowSymLinks' may cause problems # with some server configurations. It is required for use of mod_rewrite, but may already # be set by your server administrator in a way that dissallows changing it in # your .htaccess file. If using it causes your server to error out, comment it out (add # to # beginning of line), reload your site in your browser and test your sef url's. If they work, # it has been set by your server administrator and you do not need it set here. # ##################################################### ## Can be commented out if causes errors, see notes above. Options +FollowSymLinks # # mod_rewrite in use RewriteEngine On ########## Begin - Rewrite rules to block out some common exploits ## If you experience problems on your site block out the operations listed below ## This attempts to block the most common type of exploit `attempts` to Joomla! # # Block out any script trying to set a mosConfig value through the URL RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] # Block out any script trying to base64_encode crap to send via URL RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR] # Block out any script that includes a <script> tag in URL RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] # Block out any script trying to set a PHP GLOBALS variable via URL RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] # Block out any script trying to modify a _REQUEST variable via URL RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) # Send all blocked request to homepage with 403 Forbidden error! RewriteRule ^(.*)$ index.php [F,L] RewriteRule ^vmchk\/([^\/]+)(\.html)? http://example.com/$1.html [R,L] # ########## End - Rewrite rules to block out some common exploits # Uncomment following line if your webserver's URL # is not directly related to physical file paths. # Update Your Joomla! Directory (just / for root) # RewriteBase / ########## Begin - Joomla! core SEF Section # RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/index.php RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC] RewriteRule (.*) index.php RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] # ########## End - Joomla! core SEF Section |
Последний раз редактировалось Sham, 30-11-2009 в 15:50. Причина: example.com Отправлено: 14:50, 30-11-2009 | #122 |
Deadooshka Сообщения: 2482
|
Профиль | Отправить PM | Цитировать да, работает не так, как ожидалось (
тогда два варианта 1. если в именах в ссылках недопускаются точки, кроме расширений .html, то можно так 2. если точки допускаются, то получится два правила |
Отправлено: 15:20, 30-11-2009 | #123 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать Здравствуйте люди у меня такой вопрос. Есть такие правила.
че то не работает. если удаляю первое правило, второе нормально работает но вместе - Internal Server Error.. или работает ненормально, не выводятся картинки.. посоветуйте что нибудь. |
------- Последний раз редактировалось Sham, 30-03-2010 в 14:24. Причина: глюк Отправлено: 14:07, 30-03-2010 | #124 |
Deadooshka Сообщения: 2482
|
Профиль | Отправить PM | Цитировать |
Отправлено: 14:21, 30-03-2010 | #125 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать спасибо за столь быстрый отзыв. снял слеши, Intern. Server Error. поставил слеши обратно и сделал как сказано. вот полный код.
так вообще обе правила не работают. у меня всe w .htaccess. |
------- Последний раз редактировалось Sham, 30-03-2010 в 14:54. Отправлено: 14:44, 30-03-2010 | #126 |
Deadooshka Сообщения: 2482
|
Профиль | Отправить PM | Цитировать уточните условия, непонятно, что требуется...
у вас на первое RewriteRule действуют 2 верхних условия RewriteCond (что не файл и не папка), а второе RewriteRule по-любому работает... |
Отправлено: 15:01, 30-03-2010 | #127 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать вообщем у меня такая штука, есть index.php?page=Products&lang=rus и index.php?lang=rus . нужно чтоб они работали если в первом случае то site.com/products/rus, и site.com/rus соответственно. как именно сделать чтоб работало, ссылки на сайте изменены соответсвенным образом.
|
------- Отправлено: 15:05, 30-03-2010 | #128 |
Deadooshka Сообщения: 2482
|
Профиль | Отправить PM | Цитировать по идее достаточно этих строк (без всего остального)
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(([^\/]+)\/)?([^\/]+)$ index.php?page=$2&lang=$3 [L] RewriteCond - это на случай если такой реальный путь существует (чтобы не было конфликтов)... |
Последний раз редактировалось Sham, 30-03-2010 в 16:00. Причина: ошибочка Отправлено: 15:23, 30-03-2010 | #129 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать а что index.php ??он у меня получает данные методом GET и все, но что-то не хочет работать чертов mod_rewrite.
у меня работает тока так. и только с двумя переменными в адресной строке, все работает и картинки и ссылки.. но как только ссылка типа index.php?lang=rus сразу not found ... |
------- Отправлено: 15:35, 30-03-2010 | #130 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочее - mod_rewrite .htaccess | Wimpheling | Общий по Linux | 0 | 08-10-2013 14:57 | |
Разное - Включение модуля mod_rewrite | Lenivets1 | Программирование и базы данных | 5 | 13-02-2012 20:00 | |
mod_rewrite | Jaels | Программное обеспечение Linux и FreeBSD | 2 | 06-01-2012 12:09 | |
mod_rewrite | kishert | Вебмастеру | 3 | 10-03-2009 06:52 | |
mod_rewrite | PHANTOM777 | Вебмастеру | 1 | 20-07-2008 10:00 |
|