Возможно ли иметь амперсанды ("&") в URL ДО строки запроса? - PullRequest
3 голосов
/ 16 марта 2010

У моего клиента определена страница на /nfm&t, поэтому я создал каталог с именем nfm&t с index.html (для проверки), и этот URL все еще выдает 404. Поэтому это не так просто.

Есть идеи? Или есть способ просто перенаправить с nfm&t на nfmt, чтобы URL хотя бы разрешился?

Кстати, это сервер Windows, который бросает рывок в то, как я привык делать перенаправления.

Ответы [ 5 ]

0 голосов
/ 16 марта 2010

Или есть способ просто перенаправить nfm & t to nfmt, так что URL в меньше всего разрешает?

Конечно. Сделайте общий обработчик URL и / или обработчик ошибок. Когда он сталкивается с URL-адресом, если этот URL-адрес равен /nfm&t, то под капотом перепишите контекст на любую страницу, которую вы действительно хотите вернуть. Это хорошая идея? Возможно нет. Но это будет работать. Ответ Кейта предлагает два способа получить URL и сделать что-то, хотя вы также можете сделать это через глобальный asax-файл (будьте осторожны, выполняя страницу aspx, когда вы сталкиваетесь с ошибкой, чтобы она действительно появлялась) если вы используете .Net .

0 голосов
/ 16 марта 2010

Включение AllowRestrictedChars и включение VersionCompatibility должно сделать это.

0 голосов
/ 16 марта 2010

Есть ли у вас каталог / nfm? Если нет, попробуйте сделать один. В любом случае, поместите файл Default.aspx и попросите его указать точный путь, к которому он пытается получить доступ. Скорее всего, когда у вас есть это здесь, он перейдет к example.com/nfm/Default.aspx и позволит вам запустить что-то оттуда.

Если вы попадете в этот каталог, попробуйте перенаправить на example.com/nfm%26t и посмотрите, работает ли он. Если это все еще не помогает, тогда вы SOL

0 голосов
/ 16 марта 2010

Я попробовал это на моей рабочей станции Snow Leopard (OSX 10.6.2) с Apache, и это работает. Это из Firefox 3.6. Похоже на Windows, с которой вы боретесь. Честно говоря, я не думал, что это будет работать без кодирования, но вы никогда не узнаете, пока не попробуете.

альтернативный текст http://www.vertigrated.com/images/so_screenshot.png

0 голосов
/ 16 марта 2010

Почему Windows Server бросает рывок в то, как вы делаете перенаправления? Если вы используете IIS 7, вы можете использовать Модуль перезаписи URL . Он встроен в IIS. Если вы используете IIS 6, существует ISAPI Rewrite , который является внешним модулем. Оба используют тот же синтаксис, что и mod_rewrite для Apache.

...