Я ищу набор простых правил и перенаправлений для своего сайта. Я перепробовала столько комбинаций, что начинаю путаться.
Я не знаю, как это настроить. Как правило, без мод-перезаписи я бы использовал относительные пути для ссылки на файлы:
<a href="link.php">Link</a>
если он находится в том же каталоге.
Теперь я бы хотел использовать это:
<a href="link">Link</a>
И так, если вы перейдете на эту страницу:
localhost/mysite/link
он приведет вас в нужное место, а именно:
localhost/mysite/link.php
Но также, на многих уровнях каталогов я бы хотел, чтобы это работало:
localhost/mysite/group/link2
пойдет к:
localhost/mysite/group/link2.php
и:
localhost/mysite/group/section/link3
пойдет к:
localhost/mysite/group/section/link3.php
Но тогда во всех этих случаях, если кто-то наберет это:
localhost/mysite/group/section/link3.php
в строке URL-адреса будет показано следующее:
localhost/mysite/group/section/link3
Спасибо
РЕДАКТИРОВАТЬ
Я думаю, что отчасти моя проблема заключалась в том, что у меня были эти каталоги в корне моего сайта:
product1
, product2
, product3
и у меня также были эти файлы в каталоге с именем products
:
product1.php
, product2.php
, product3.php
В .htaccess
файл не работал, пока я не изменил эти имена файлов на что-то другое, отличное от имен каталогов. Имеет ли это смысл? Это ожидаемое поведение?
РЕДАКТИРОВАТЬ 2
Я уверен, что кто-то зайдет в этот пост в поисках помощи, аналогичной тому, что я делал, когда писал этот вопрос. Здесь и на stackoverflow.com есть много хороших ответов на mod_rewrite. Я рекомендую прочитать их и попробовать эти условия и правила на тестовом экземпляре, чтобы понять их.
Я также понял, что использование частой очистки кеша браузера и активация RewriteLog очень важны для выяснения этого вопроса. Например:
RewriteLog "rewrite.log" RewriteLogLevel 7
Радоваться, веселиться
Вы можете сделать это с помощью .htaccess. Правильный код для этого выглядит следующим образом:
RewriteEngine на
RewriteCond% {REQUEST_FILENAME}! -D
RewriteCond% {REQUEST_FILENAME} .php -f
RewriteRule ^ (. *) $ 1.php