Помогите с простой проблемой RewriteRule - PullRequest
1 голос
/ 13 декабря 2010

Я создаю очень маленький сайт, 5 страниц, в php на apache. Я создал пять файлов php в верхнем каталоге: index.php, random.php и т. Д. Я хотел скрыть расширение .php, поэтому я добавил в свой .htaccess следующее:

RewriteRule ^random/?$ random.php

Если я захожу на www.example.com/random, я получаю нужную мне страницу, но если я захожу на www.example.com/random/ (косая черта в конце), то css и ссылки - это один каталог, т.е. сервер думает, что я в /random/index.php, а не в /random.php.

Я абсолютный новичок в RewriteRule, так что спасибо заранее!

1 Ответ

2 голосов
/ 13 декабря 2010

У вас должно быть отдельное правило для конечной косой черты, которое фактически выполняет перенаправление HTTP.Например:

RewriteRule ^random/$ /random [R=301,L]
RewriteRule ^random$ random.php

Относительные URL-адреса обрабатываются браузером, поэтому с этим завершающим слэшем браузер запутается.

Большинство HTTP-серверов фактически делают обратное перенаправление такого типа для каталогаимена.То есть, если вы перейдете на http://example.com/foo/bar и bar - это каталог, вы будете перенаправлены на /foo/bar/.

...