Действия

Htaccess rewrites: различия между версиями

Материал из lulzette's wiki

м (Wikilosted переименовал страницу Htaccess в Htaccess rewrites без оставления перенаправления)
 
(не показано 6 промежуточных версий этого же участника)
Строка 1: Строка 1:
== www->!www + http->https ==
== regular ==
 
=== www->!www + http->https ===


<source>
<source>
#redirect www+https
#redirect www+https
RewriteCond %{HTTP_HOST} ^www\.energysport\.store$ [NC]
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ https://energysport.store/$1 [R=301,L]
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]
RewriteCond %{HTTP:X-HTTPS} !1
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</source>
</source>
== docs ==
=== RewriteCond ===
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#RewriteCond<br>
https://web-optimizator.com/301-redirekt-htaccess/<br>
<code>RewriteCond *условие* *шаблон*</code>
Частые:
* <code>HTTP_HOST</code> - очевидно (хост, к которому идет обращение)
* <code>HTTP:X-HTTPS</code> - true (1) если https
* <code>REQUEST_URI</code> - путь (URI)
* <code>QUERY_STRING</code> - параметры (к php скрипту, например)
=== RewriteBase ===
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritebase<br>
Путь, относительно которого следует применять правила
=== RewriteRule ===
<code>RewriteRule Что На_что [Флаги]</code><br>
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule<br>
https://simonecarletti.com/blog/2009/01/apache-rewriterule-and-query-string/<br>
Собсна указание, что на что заменить. <br>
==== Флаги ====
* <code>NC</code> - не чувствителен к регистру
* <code>QSA</code> - добавлять QUERY_STRING к концу RewriteRule
* <code>R[=code]</code> - код редиректа
* <code>L</code> - указание, что RewriteRule - последний, после него правила не выполняются
* <code>F</code> - 403 forbidden

Текущая версия от 15:55, 21 августа 2020

regular

www->!www + http->https

#redirect www+https
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]


docs

RewriteCond

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#RewriteCond
https://web-optimizator.com/301-redirekt-htaccess/

RewriteCond *условие* *шаблон*

Частые:

  • HTTP_HOST - очевидно (хост, к которому идет обращение)
  • HTTP:X-HTTPS - true (1) если https
  • REQUEST_URI - путь (URI)
  • QUERY_STRING - параметры (к php скрипту, например)

RewriteBase

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritebase
Путь, относительно которого следует применять правила

RewriteRule

RewriteRule Что На_что [Флаги]

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule
https://simonecarletti.com/blog/2009/01/apache-rewriterule-and-query-string/
Собсна указание, что на что заменить.

Флаги

  • NC - не чувствителен к регистру
  • QSA - добавлять QUERY_STRING к концу RewriteRule
  • R[=code] - код редиректа
  • L - указание, что RewriteRule - последний, после него правила не выполняются
  • F - 403 forbidden