Нужна помощь с проблемой переписывания модов Apache - PullRequest
1 голос
/ 31 марта 2010

Я изменил свой файл .htaccess, чтобы иметь следующий оператор

RewriteCond $1 !^index.php$
RewriteRule ^/?([^/]+)$ index.php?c=home&m=details&seo=$1 [L,NS]

Это позволяет мне использовать URL продукта следующим образом: http://domain.com/product_name

Однако при попытке доступа к файлу на том же уровне, что и index.php, он всегда вызывает приведенный выше RewriteRule и выдает ошибки.

Мне нужно иметь доступ к файлам, как показано ниже, но каждый URL в настоящее время пытается загрузить index.php. http://domain.com/about.htm
http://domain.com/terms.htm
http://domain.com/robots.txt
и т.д.

Любые предложения о том, как я могу изменить свой файл htaccess, чтобы заставить его работать правильно?

1 Ответ

3 голосов
/ 31 марта 2010

Если вы хотите, чтобы файлы превосходили продукты, вы можете бросить их в другом состоянии:

RewriteCond $1 !^index.php$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?([^/]+)$ index.php?c=home&m=details&seo=$1 [L,NS]

... это означает, что только если запрошенный URI не сопоставлен с файлом, его следует рассматривать как продукт.

Наличие файлов, превосходящих такие продукты, не страшно, если только вы не планируете иметь продукты с такими именами, как «thing.html »и« dynamic.php »или« lenna.jpg ».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...