Существует проблема неструктурированной ссылки, например (https://example.com/digital-marketing.php/ercbierubcrei
)
Как я могу перенаправить ее на главную root?
Я предполагаю /digital-marketing.php
это файл в вашей файловой системе В этом случае /ercbierubcrei
- это дополнительная информация о пути (или path-info ). По умолчанию обработчик PHP разрешает информацию о пути, поэтому /digital-marketing.php
все еще обслуживается, но по другому URL-адресу (если вы это подразумеваете под «неструктурированной ссылкой»?).
Вы можете просто отключить путь -инфо по этим URL-адресам, указав в верхней части файла .htaccess
следующее:
AcceptPathInfo Off
Теперь любой URL-адрес, содержащий path-info, будет вызывать 404, а ваш пользовательский документ об ошибке 404 будет называется. (Вы можете переопределить это поведение с помощью mod_rewrite, если вы используете sh.)
В качестве альтернативы, если вы хотите перенаправить /digital-marketing.php/ercbierubcrei
на /digital-marketing.php
(это то, что вы подразумеваете под «перенаправить его на главную root»? * 1 ), затем вы можете сделать что-то вроде следующего в верхней части .htaccess
файла, используя mod_rewrite:
RewriteEngine On
RewriteRule ^(.+?\.php)/ /$1 [R=302,L]
Это перенаправляет URL-адрес в форме от /<something>.php/<anything>
до /<something.php
, фактически отбрасывая часть URL-адреса с информацией о пути.
(* 1 - Если под "main root" вы в буквальном смысле подразумеваете документ root сайта, то это не рекомендуется. В любом случае Google, скорее всего, воспримет это как софт-404. В качестве предпочтительного варианта предпочтительным будет 404 со значимым сообщением. .)
ErrorDocument 404 /example.com
Это не выглядит "действительным". Второй аргумент директивы ErrorDocument
в идеале должен быть локальным URL-путем к документу, который обрабатывает ответ об ошибке.
Например:
ErrorDocument 404 /error-documents/my-404-error-document.php