Назад | Перейти на главную страницу

Как убрать косую черту в середине URL-адреса со строкой запроса?

У меня есть перенаправления домена, которые указывают на страницу на моем сервере, и они ставят косую черту после имени файла, но перед строкой запроса. Итак, это:

http://hydesim.com?dll=40.71427,-74.00597&yd=10&zm=12&op=156

… Становится таким:

http://meyerweb.com/eric/tools/gmap/hydesim.html/?dll=40.71427,-74.00597&yd=10&zm=12&op=156

…вместо этого:

http://meyerweb.com/eric/tools/gmap/hydesim.html?dll=40.71427,-74.00597&yd=10&zm=12&op=156

Так как же мне убрать косую черту в середине URL-адреса, сохранив строку запроса? Я пробовала .htaccess подходит, но ничего не работает. Самая последняя попытка была:

RewriteRule ^(.+)html/(.+)$ /$1html$2 [R=301,L]

[ОБНОВЛЕНИЕ: это правило не сработало, поэтому я отключил его, и теперь никакие изменения не действуют.] Я не очень разбираюсь в mod_rewrite, как вы уже догадались. Любая помощь очень ценится!

Mod_rewrite Apache не соответствует строке запроса в RewriteRules. Вам даже не понадобится QSA, если вы не перенаправляете на URL-адрес с указанной строкой запроса. Я тестировал это локально на Apache 2.2.22 (собственная версия OS X Lion), и это сработало.

RewriteRule ^(.+)html/$ /$1html [R=301,L]

РЕДАКТИРОВАТЬ: если вы помещаете .htaccess в каталог gmap, вам нужно будет использовать в нем следующее:

RewriteEngine On
RewriteBase /eric/tools/gmap/
RewriteRule ^(.+)html/$ $1html [R=301,L]

Используйте флаг QSA («Query String Append») вместо того, чтобы пытаться разобрать его самостоятельно. Что-то вроде:

RewriteRule ^(.+)html/(.+)$ /$1html [R=301,L,QSA]