Как переписать грязный URL как чистый URL, используя HTACCESS? - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь превратить все страницы в чистые 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.

Любая помощь будет принята с благодарностью!

...