2016-04-06 2 views
0

У меня есть следующий URL настройка правил перезаписи на моем сайтеURL оленьей кожи обрабатывать домашнюю страницу/по умолчанию странице

RewriteCond %{REQUEST_URI} !^/(img|js|css|fonts)/ 
RewriteCond %{REQUEST_URI} !.html$ 
RewriteRule ^([^/]*)\/?$ $1.html [NC,L] 

Он работает удивительно хорошо, но я не могу показаться, чтобы получить его, чтобы загрузить главную страницу сайта если его явно не указаны

www.domainname.com/ & www.domainname.com не работает, если я явно не писать www.domainname.com/index.

Есть ли что-то, что мне не хватает в моем шаблоне, чтобы разрешить подачу документа по умолчанию, если в списке нет конкретной страницы?

Этот вопрос обрабатывается Helicon Ape, если это кому-то интересно или имеет какую-либо разницу в том, как он обрабатывает свои правила?

ответ

1

Я думаю, что ошибка, которую вы здесь делаете, использует квантор *. Что он делает, захватывает zero или more вхождениях упомянутого персонажа.

Ваше регулярное выражение: ^([^/]*)\/?$ Поскольку вы использовали *, он пойдет ленивым и ничего не будет сотворять. Рендеринг .html после замены.

Вы можете изменить regex, чтобы быть жадным, используя +. Ваше регулярное выражение будет ^([^/]+)\/?$.

В этом demo обратите внимание, что даже пробелы сопоставлены из-за ленивого квантора *.

+0

спасибо вам большое, im stil gettng мои ноги мокрые, когда дело доходит до regex, и он решил мою проблему и имеет для меня больше смысла – user125264

+0

@ user125264: Cool! Я рад, что работал, хотя не очень хорошо с .htaccess и прочее. –

+0

Только FYI, на mod-rewrite вам не нужно избегать **/**, так как это не каталог, а отдельный символ. – starkeen

Смежные вопросы