перезапись .htaccess на $page

#php #.htaccess #rewrite

#php #.htaccess #url-переписывание

Вопрос:

Кажется, я застрял. Я нашел ответы, но не могу заставить их работать.

Я работаю над этим веб-сайтом. Я использую переключатель, чтобы определить, какой контент должен быть видимым. Я использую переменную $page.

Ссылки с помощью этого метода не подходят для SEO, поэтому я хочу, чтобы они были /example вместо index.php?page=example .

Я просмотрел все разные ответы на это в StackOverflow, но я не могу заставить какие-либо решения работать. Ошибок не возникает, и сайт будет отображаться нормально, но перезапись не работает.

Я пробовал на обоих моих серверах на servage.net и one.com

Есть предложения? 😀 был бы весьма признателен!

Комментарии:

1. Что вы пробовали, что не сработало? Пожалуйста, опубликуйте какой-нибудь код, чтобы мы могли вам помочь.

Ответ №1:

Попробуйте добавить это в .htaccess файл в корневой папке вашего веб-документа (часто public_html или htdocs ), затем укажите вашему браузеру на example.com/somepage :

 RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^./] )/?$ page=$1 [L,R]
  

Как только вы убедитесь, что перенаправление работает, вы можете изменить его R на R=301 , чтобы сделать постоянным.
Предполагается, что mod_rewrite одновременно установлен и активирован для файлов htaccess.
Если вы не уверены, чтобы проверить, установлен ли mod_rewrite, посмотрите на список установленных модулей в выходных данных phpinfo();
По умолчанию mod_rewrite не включен для файлов htaccess. Если вы управляете своим собственным сервером, откройте httpd.conf
и убедитесь, что блок каталога webroot содержит одну из этих строк: AllowOverride FileInfo или AllowOverride All