Я пытаюсь превратить все страницы в чистые URL-адреса (чтобы site.com/new/index.php?page=hello превращался в site.com/new/hello). После проведения исследования, кажется, что наилучшим подходом является переписывание пути с использованием файла HTACCESS. Я искал это месяцами и пока не нашел надежного решения.
Я пробовал несколько способов сделать это, и никто не отвечает. Я даже попробовал это на разных серверах Apache, чтобы увидеть, есть ли какая-то проблема. Я связался с хозяевами, и, кажется, все настройки в порядке.
Я пробовал несколько подходов и их вариантов. Я также попытался изменить свои разрешения, изменить настройки в cPanel и WHM, а также поместить файл HTACCESS в разные каталоги. Ничто не могло изменить URL, хотя другие команды в моем файле HTACCESS выполняются, поэтому я знаю, что файл читается.
Вот код, который я пробовал до сих пор:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^page/(\d+)*$ ./index.php?page=$1
А это:
RewriteEngine On
RewriteRule ^([a-z]+)\/([0-9]+)\/?$ index.php?page=$1 [NC]
Кажется, он не работает, так как URL остается неизменным независимо от того, добавил ли я этот скрипт или нет.
Кажется, что на сайт не влияет добавление этого кода. Файл HTACCESS полностью чистый, и в «разделе» нет других файлов HTACCESS, которые могли бы повлиять на него. Для репликации попробуйте использовать приведенный выше код в файле HTACCESS в любом каталоге.
Я ожидаю, что код перезапишет URL в чистый формат, поскольку большинство сайтов рекомендуют такой код, чтобы изменить URL так, как мне нужно. Однако мой сайт сохраняет URL-адрес с переменной page = hello, как будто отсутствует сценарий HTACCESS.
Любая помощь будет принята с благодарностью!