Извините, но то, что вы просите, невозможно. Это типичное неправильное понимание перезаписи URL:
Перезапись URL переписывает (манипулирует) входящие запросы на стороне сервера перед их обработкой. невозможно изменить исходящий контент таким образом, чтобы содержащиеся в нем URL-адреса изменились.
Однако для этого есть решения:
- Прокси-модуль apache может «сопоставить» один URL-адрес с областью действия другого URL-адреса.
- также есть модули для автоматической постобработки сгенерированной html разметки
- существуют более экзотические или креативные решения, в конце концов, это зависит от вашей ситуации...
Но обычно проще всего изменить приложение (обычно только его центральную конфигурацию) таким образом, чтобы оно содержало конечные URL-адреса (указывающие на поддомен в вашем случае). Затем вы действительно можете использовать модуль перезаписи, чтобы «переназначить» их в предыдущую область, когда будущие входящие запросы будут ссылаться на них (они были нажаты).
Хорошо, второй шаг — получение дополнительной информации из ваших комментариев:
Просто для ясности: вы понимаете, что невозможно изменить ссылку, которую вы отправляете, путем перезаписи, но вы хотите изменить URL-адрес, отображаемый в браузере после, когда пользователь нажал на какой-либо ссылка на город? Это отличается от того, что вы писали ранее, и это действительно возможно. Большой.
Если переписывание работает так, как вы хотите (вы видите нужный URL-адрес в адресной строке браузера), то мы можем продолжать. Сообщение об ошибке указывает на проблему с разрешением имени, которая не имеет ничего общего с перезаписью. Скорее всего домен "cambridge.192.168.2.107" не резолвится, что собственно и не удивительно. Вы не можете смешивать IP-адреса и имена, это или или.
Также я вижу, что вы используете внутренние немаршрутизируемые адреса. Таким образом, вы также сами несете ответственность за разрешение имен, поскольку ни один общедоступный DNS-сервер не может догадаться, что вы настраиваете внутри. Ты сделал это?
Я предлагаю следующие шаги:
- прекратите использовать для этого IP-адреса, используйте доменное имя.
- поскольку вы работаете внутри компании, позаботьтесь о том, чтобы это доменное имя действительно разрешалось в IP-адрес вашей локальной системы. Как вы это сделаете, очевидно, зависит от вашей настройки и системы. Скорее всего вам нужна какая-то запись в файле
/etc/hosts
или подобная.
- вам нужно позаботиться о том, чтобы и эти «имена субдоменов» разрешались на один и тот же адрес. Это не тривиально, опять же, это зависит от настроек и системы, которую вы используете локально.
- если это разрешение имени работает, вы должны увидеть запрос в файле журнала доступа к http-серверам. Тогда и только тогда есть смысл продолжать...
person
arkascha
schedule
28.02.2014