#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