RewriteCond %{REQUEST_URI} ^/new/
RewriteRule ^(.*)$ new.php?title=$1 [L,QSA]
им путают, что это делает ....что на самом деле это переписать?
что это делать REQEUST_URI?
RewriteCond %{REQUEST_URI} ^/new/
RewriteRule ^(.*)$ new.php?title=$1 [L,QSA]
им путают, что это делает ....что на самом деле это переписать?
что это делать REQEUST_URI?
Если (RewriteCond
), использованный Вами URI, начинаться с /new/
, отображается сценарий new.php
(RewriteRule
). Он будет передан запрошенному URI в качестве параметра title
, строка запроса (если таковая имеется) будет сохранена (флаг QSA
), и после этого никакие дополнительные правила не будут обработаны (флаг L
).
т.е.
http://example.com/new/test.html
назвали бы http://example.com/new.php?title=/new/test.html
http://example.com/new/test2.html?query=test3
назвали бы http://example.com/new.php?title=/new/test2.html&query=test3
Если URL-адрес начинается с «/ new /», он переписывает URL-адрес в new.php, ставя старый URL как значение для поля «title».
"/ new/Foo + Bar? Bam = bug-AWWK!" становится «new.php? title =/new/Foo + Bar & bam = ошибка-AWWK!" или (если RewriteRule находится в файле .htaccess) «new.php? title = new/Foo + Bar & bam = bug-AWWK!».
В основном это делает хорошие, красивые URL.
Требуется URL-адрес, например http: /www.example.org/new/foobar, а в фоновом режиме - http://www.example.org/new.php?title=foobar.
REQUEST_URI - это все после имени хоста. В приведенном выше примере это/new/foobar.
Ваш пример может быть объяснен как
RewriteCond %{REQUEST_URI} ^/new/
Если запрос URL ваше имя хост (REQUEST_URI) следует по new
папке ...
RewriteRule ^(.*)$ new.php?title=$1 [L,QSA]
Затем переписать их в качестве имени хоста следует по условию string new.php?title=
и заканчивать переменными после /new/
в исходном запросе URL.
Пример: запрос URL-адрес, чтобы:
http://yoursite.com/new/orange
сервер будет интерпретировать это как:
http://yoursite.com/new.php?title=orange
REQEUST_URI содержит текущий absolute URL path. Таким образом, правило будет применяться для каждого запроса, URL-адрес которого начинается с /new/…
и переписывает/перенаправляет его внутри файла new.php в текущем каталоге (при условии, что вы не изменили базовый URL-адрес с помощью RewriteBase
).
Итак, если вы используете это правило в.Htaccess файл
/
), запрос о /new/foo/bar
будет переписан/перенаправлены /new.php?title=new/foo/bar
./new/
, запрос /new/foo/bar
был бы переписан/перенаправлен на /new/new.php?title=foo/bar
./new/foo
, запрос будет переписан/перенаправлен на /new/foo/new.php?title=bar
.
Прочитать документацию для RewriteCond: http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritecond – outis