У меня есть очень простой двухстраничный веб-сайт: домашняя страница и страница о программе. Я пытаюсь использовать htaccess, чтобы переписать URL-адреса так, чтобы они выглядели так:
- domain.com / (для домашней страницы)
- domain.com / about (для страницы about)
В фактической структуре папок сайта, домашняя страница - /index.php, а страница about - /about.php (обе отображаются в корне).
Я изучал использование псевдонимов, но, к сожалению, мой хостинг (Dreamhost) не разрешает доступ к httpd.config, так что это не из окна, и мне осталось использовать правила перезаписи в файле htaccess.
Поскольку файл index.php будет отображаться в корне домена (http://domain.com/) автоматически, мне до сих пор удавалось правильно отобразить страницу about на domain.com / about , используя следующие строки:
RewriteEngine On
RewriteRule ^about$ /about.php
Я также использую перенаправления 301, так что, например, domain.com / about / (с завершающей косой чертой) также перенаправляет обратно на URL / about примерно так:
Redirect 301 /about/ http://domain.com/about
Это прекрасно работает.
Однако файлы index.php и about.php по-прежнему также отображаются, если вы переходите по правильному URL-адресу в браузере (например, domain.com / about.php ), поэтому в результате поисковые системы видят (и индексируют) две версии каждой страницы! Я установил правильные канонические метаданные на каждой странице, но это, похоже, не оказало никакого влияния (канонические метаданные были в разметке страницы с момента запуска сайта).
Итак, как мне сначала выполнить «слепое» переписывание (если не использовать более технический термин) двух файлов, чтобы URL-адреса выглядели правильными, а также эффективно «блокировать» прямой доступ к файлам, гарантируя, что если кто-то попытается получить доступ к файлам php напрямую, URL-адрес по-прежнему будет отображаться в браузере посетителя как «красивые» версии, а не как полное имя файла и расширение php?
Любой совет был бы чрезвычайно признателен, я изучал это в течение еще нескольких дней (я не думаю, что здесь уже есть что-то совершенно такое же, как это где-то здесь), и я не могу по жизни работать этим вне!