установка mod_rewrite в apache (ubunta)
Tuesday, April 28th, 2009# sudo a2enmod rewrite
# /etc/init.d/apache2 restart
# sudo a2enmod rewrite
# /etc/init.d/apache2 restart
Заставить не php файлы проходить через php движок
<FilesMatch "\.(css|style)$"> SetHandler application/x-httpd-php </FilesMatch>
теперь все файлы с расширение *.css или *.style
Во время проведению временных работ над веб-сервером, при наличии mod_rewrite добавляем такие строки в .htaccess:
RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /maintenance.html [L]
Таким образом, при создании в корне сайта файла maintenance.html пользователю будет отображен контент этой страницы с надписью “Не переживай друг, сервер всего лишь в режиме maintenance”, да и все запросы будут отправлены на эту страницу.
По окончании работ просто удаляем, или же переименовываем страницу maintenance.html, тем самым возобновляя нормальную работу сайта.
Источник
Надо быть уверенным что все http запросы переадресуются на https и на порт 443. Для этого вставляем правило для сайта или дериктории.
RewriteEngine on
Options +FollowSymLinks
Allow from all
RewriteCond %{SERVER_PORT} !^443$RewriteRule ^.*$
https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Большие сайты любят передавать переменные в адресной стоке не явно, например вместо того что бы в адресной строке стояло
wiki.php?param1=edit¶m2=132 хочется видеть wiki/edit/123/ для этого нам понадобится использовать МodRewrite в .htaccess. пишем там следующее
<IfModule mod_rewrite.c>
RewriteBase /
RewriteEngine On
RewriteRule ^wiki/([^/]+)/([^/]+)/?$
/wiki/index.php?param1=$1¶m2=$2 [L]
</IfModule>
попробуем расшифровать регулярку
^wiki/ - если в начале адреса стоит слово wiki и затем слеш (/)
(([^/]+)) - далее любое количество букв, или хотя бы один и символов кроме слеша, берем в скобки что бы использовать как $1
далее такая же вторая группа будет идти как $2
/? - один или вообще отсутствие слеша