У меня есть размещенный веб-сайт, на котором я использую следующий файл htaccess для форматирования URL-адресов. Все они работают нормально. Хост использует Apache, но, к сожалению, не показывает номер версии. Я думаю, что 2,4.
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteRule ^item/([0-9]+)/(.*) /item.php?item=$1&title=$2 [L]
RewriteRule ^category/(.*) /showitems.php?category=$1 [L]
RewriteRule ^search/(.*) /searching.php?options=$1 [L]
RewriteRule ^searching/(.*) /showitems.php?search=$1 [L]
RewriteRule ^update/(.*) /showitems.php?update=$1 [L]
AddType application/x-httpd-lsphp .html .htm .shtml
Я скопировал весь сайт на свой локальный Synology Diskstation с помощью Apache 2.4.
URL-адреса перезаписи для категории, поиска и обновления работают нормально. Однако URL-адреса для «поиска» и «элемента» возвращают ошибку 404. «Поиск» — это перенаправление заголовка из «searching.php».
Элемент является странным в том смысле, что он использует 2 параметра получения в URL-адресе результата. В режиме проб и ошибок я изменил его на:
RewriteRule ^item/(.*) /item.php?item=$1 [L]
Что тоже не работает, однако
RewriteRule ^itemitem/(.*) /item.php?item=$1 [L]
Работает нормально, что меня очень озадачивает. Это последнее переписывание также не работает, когда я снова добавляю второй параметр.
Что мне не хватает? Или есть лучший способ приблизиться к этим переписываниям в первую очередь, который я мог бы попробовать?