jkm

Рейтинг
120
Регистрация
20.02.2014

Включить short_open_tag или использовать <?php

Если я правильно понял, то нужно убрать из папок .htaccess, а в корне должно быть так:


DirectoryIndex index.html

RewriteEngine On

RewriteRule ^([^/]+/)index\.html$ /$1 [R=301,L]

Свою страницу для ошибки 404 можно указать так:

ErrorDocument 404 /404.html

Если нужен именно редирект на главную:

ErrorDocument 404 http://site.ru/

Тогда так:

>[^>]+$


RewriteCond %{HTTP_HOST} ^www\.(.+\.site\.ru)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

Потерялся шаблон регулярного выражения между RewriteRule и /test.html

http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewriterule

RewriteRule Pattern Substitution [flags]

RewriteCond %{HTTP_REFERER} ^https?://(www\.)?(google\.com|yandex\.ru)

RewriteRule ^test\.pdf$ /test.html [L]

Ставить выше правил ЧПУ.

В районе строки 38


<?php
if (isset($_POST['bsearch'])) {

Открывающая фигурная скобка есть, а вот закрывающая скобка где-то потерялась.


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{DOCUMENT_ROOT}/DOCS/$1 -f
RewriteRule ^(.*\.xml)$ /DOCS/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
lupus_bellus:
чтобы xml файлы из папки DOCS открывались в корне.

Открывались в корне это как?

При запросе /file.xml отдавать /DOCS/file.xml или как?

http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html

Сначала последовательно выполняются rewrite, описанные на уровне server.

Только потом уже начинается поиск location по URI запроса и последовательно выполняются директивы описанные в найденном location.


server {
rewrite "^/([^.]+)(/?)+$" /index.php?do=cat&category=$1 last;

location /user/ {
rewrite ^/user/([^/]*)(/?)+$ /index.php?subaction=userinfo&user=$1 last;
}
}

В строке /user/johnylee/ нет точек, поэтому она совпадает с шаблоном "^/([^.]+)(/?)+$".

Т.е. этот шаблон перехватит любой запрос, где нет точек.

Самое простое решение это вынести все правила с rewrite на уровень server.


rewrite "^/([^.]+)/page/([0-9]+)(/?)+$" /index.php?do=cat&category=$1&cstart=$2 last;
rewrite "^/([^.]+)(/?)+$" /index.php?do=cat&category=$1 last;

Эти два правила перенести в самый конец.

Или rewrite c уровеня server перенести в location /


location / {
rewrite "^/xfsearch/([^.]*)(/?)+$" /index.php?do=xfsearch&xf=$1 last;
rewrite "^/xfsearch/([^.]*)/page/([0-9]+)(/?)+$" /index.php?do=xfsearch&xf=$1&cstart=$2 last;
rewrite "^/page/([0-9]+)(/?)$" /index.php?cstart=$1 last;
rewrite ^/page/(.*)$ /index.php?cstart=$1 last;

rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$" /index.php?year=$1&month=$2&day=$3 last;
rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$" /index.php?year=$1&month=$2&day=$3&cstart=$4 last;
rewrite "^/([0-9]{4})/([0-9]{2})(/?)+$" /index.php?year=$1&month=$2 last;
rewrite "^/([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$" /index.php?year=$1&month=$2&cstart=$3 last;
rewrite "^/([0-9]{4})(/?)+$" /index.php?year=$1 last;
rewrite "^/([0-9]{4})/page/([0-9]+)(/?)+$" /index.php?year=$1&cstart=$2 last;
rewrite "^/([^.]+)/page/([0-9]+)(/?)+$" /index.php?do=cat&category=$1&cstart=$2 last;
rewrite "^/([^.]+)(/?)+$" /index.php?do=cat&category=$1 last;

И несколько правил для .xml перенести в location ~ \.(html|xml)


rewrite ^/user/([^/]*)/rss.xml$ /engine/rss.php?subaction=allnews&user=$1 last;
rewrite ^/user/([^/]*)/news/rss.xml(/?)+$ /engine/rss.php?subaction=allnews&user=$1 last;

rewrite ^/catalog/([^/]*)/rss.xml$ /engine/rss.php?catalog=$1 last;
Всего: 749