У меня есть приложение, которое я создаю в ColdFusion, благодаря чему все запросы будут выполняться через файл index.cfm.
У меня есть файл .htaccess, который перезаписывает URL-адрес. Так, например... если я напишу:
http://domain.com/hello/goodbye/howdy
Фактический запрос всегда использует index.cfm следующим образом:
http://domain.com/index.cfm/hello/goodbye/howdy
Все это отлично работает, но теперь я застрял в том, как я могу получить все, что находится в URL-адресе. Кажется, ни одна из переменных CGI не выводит часть URL «/hello/goodbye/howdy».
Я пробовал cgi.path_info и cgi.query_string и т. д. безрезультатно... они просто пустые.
Мне нужно захватить все, что идет после доменного имени, и делать с ним что-то в CF. Я знаю, что это возможно в JS, но мне это очень нужно на сервере.
Сброс области CGI не показывает мне ничего полезного в этом отношении:
<cfdump var="#cgi#" />
Вот мой файл htaccess для справки:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.cfm$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.cfm [L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} !^([^\.]+)\.domain\.com
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
Спасибо.
РЕДАКТИРОВАТЬ:
В качестве дополнительного примечания я также пробовал базовые методы Java, например:
<cfdump var="#getPageContext().getRequest().getContextPath()#" />
<cfdump var="#getPageContext().getRequest().getRequestURL()#" />
<cfdump var="#getPageContext().getRequest().getQueryString()#" />
Безуспешно :(
QUERY_STRING
обычно является переменной, которая содержит именно эту информацию. (По крайней мере, при обычной установке Apache.) - person Pekka   schedule 15.02.2012REQUEST_URI
конечно, а неQUERY_STRING
. QUERY_STRING содержит только часть после ? по дизайну. Извиняюсь - person Pekka   schedule 15.02.2012