Я пытаюсь показать дружественные URL-адреса SEO, используя переписывание в нашем файле .htaccess, но я не могу заставить его работать (я исследовал многие связанные темы в StackExhange и в других местах, но безрезультатно). Я хотел бы получить значение id на этой странице …
http://199.119.123.135/info/tool_surety_company.php?id=1
… и отображать значение id в URL вместо уродливого «tool_surety_company.php? id = 1».
Я собираюсь получить такой результат: http://199.119.123.135/info/travelers-group
Я использую следующий код в моем файле .htaccess:
RewriteCond %{THE_REQUEST} \ /+info/tool_surety_company\.php\?id=([^&]+) RewriteRule ^ /info/%1/? [L,R] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^^info/([^/]+)/?$ /info/tool_surety_company.php?id=$1 [QSA]
Но я получаю ошибку 404.
Есть идеи? Заранее спасибо!
Возможно, что-то я не понимаю здесь, но я считаю, что на серверном коде должен быть механизм для загрузки правильного контента для нового «seo-friendly url». Другими словами, конечно, вы можете перенаправить пользователя для отображения другого URL-адреса, но как сервер узнает, какой контент загрузить для этого нового URL-адреса?
Вот хороший ресурс для составления простого примера. https://moz.com/ugc/using-mod-rewrite-to-convert-dynamic-urls-to-seo-friendly-urls
Обновить:
Отсюда: https://mediatemple.net/community/products/dv/204643270/using-htaccess-rewrite-rules
ИСПРАВЛЕНИЕ ПРОБЛЕМ
404 Не Найдено
Изучите новый URL-адрес в браузере. Соответствует ли файл, существующий на сервере, в новом местоположении, указанном в правиле перезаписи? Возможно, вам придется сделать правило перезаписи более широким (вы можете удалить $ 1 со второй строки). Это приведет к перезаписи на главную страницу индекса, указанную во второй строке. Или вам может потребоваться скопировать файлы из вашего старого местоположения в новое место.
Другими словами, единственная причина, по которой вы получите 404, заключается в том, что сервер не находит файл, который запрашивается, как определено в URL-адресе, видимом в адресной строке вашего браузера.
Htaccess Rewrites разрешены с помощью модуля Apache mod_rewrite, который является одним из самых мощных модулей Apache и функций availale. Htaccess Rewrites через mod_rewrite обеспечивает специальную возможность перезаписи запросов как внутри, так и запроса перенаправления извне.
Когда URL-адрес в строке местоположения вашего браузера остается неизменным для запроса, это внутренняя переписка, когда URL-адрес изменяет внешнее перенаправление. Это один из первых, и один из самых больших людей ментальных блоков, когда узнал о mod_rewrite.
Дополнительная информация отсюда: http://www.askapache.com/htaccess/modrewrite-tips-tricks.html