2014-10-27 3 views
1

В .htaccess определила такие правила переписыванияhtacess RewriteRule для/категории/страница

RewriteRule ^([a-zA-Z0-9_-]+)$ ___show-content.php?$1 

Созданный файл ___show-content.php, который включает в себя код

echo (ltrim($_SERVER['QUERY_STRING'],'/')). '<br/>'; 

Если я типа www.mydomain.com/some-page то $_SERVER['QUERY_STRING' является /some-page. Это работает так, как ожидалось.

Но если я нахожу www.mydomain.com/some-page/another-page, тогда посмотрите Not Found The requested URL /some-page/another-page was not found on this server. Я ничего не вижу с $_SERVER['QUERY_STRING'. Если одна косая черта (после имени домена), то работает нормально, но если более одного, не работает.

Что нужно изменить для RewriteRule для работы с более чем одной косой чертой в URL-адресе?

ответ

1

Это потому, что ваше регулярное выражение для захвата URI допускает только одно и более символов [a-zA-Z0-9_-].

сделать ваше правило как:

RewriteRule ^([\w/-]+)$ ___show-content.php?$1 [L,QSA]