У меня есть правило, которое работает для одного «направления», но не для другого.
Типичный входящий URL / запрос: (длинный URL)
http://somedomain.com/getme.pl?dothis=display&partnum=1234567
(может быть до 9 цифр)
У меня есть это правило в моем файле htaccess:
RewriteRule ^([0-9]*)$ /getme.pl?dothis=display&partnum=$1 [L]
Который отлично подходит для небольшого удобства получения одного из уникальных номеров деталей:
http://somedomain.com/1234567.
Тем не менее, я хотел бы сделать длинный URL-адрес "красивым", поэтому я решил, что могу изменить (ish) его.
Таким образом, при нажатии на ссылку на сайте (длинный URL-адрес) файл htaccess обрабатывает длинный URL-адрес до улучшенной версии.
Я пробовал МНОГИЕ попытки.
Здесь был мой последний сбой.
RewriteRule ^([0-9]*)$ /getme.pl?dothis=display&partnum=$1 [L] #(works)
RewriteCond %{QUERY_STRING} ^partnum=([0-9]*) #(tried to get partnum)
RewriteRule ^.* http://%{HTTP_HOST}/%1 [R] #(make the short url)
RewriteRule ^([0-9]*)$ /getme.pl?dothis=display&partnum=$1 [L] #(the known working rule)
Я испробовал множество правил и посетил множество сайтов для совета.
Я пробовал только с правилами, только с условиями и вариациями query_string.
Итак, я считаю, что мне нужно просто извлечь "partnum" из запроса и переписать в / 1234567 или http_host / 1234567
Затем разрешите обработку другому правилу (работам).
Итак, ОБА:
http://somedomain.com/getme.pl?dothis=display&partnum=1234567
и
http://somedomain.com/1234567
Отображать как: http://somedomain.com/1234567
в браузере.
и оба правильно передали весь запрос скрипту getme.pl
.
Я нашел здесь несколько близких ответов, но ни один из них не объяснил, что мне действительно нужно.
Может кто-нибудь помочь, пожалуйста?