Как удалить косую черту в середине URL-адреса со строкой запроса?
У меня есть некоторые доменные перенаправления, которые указывают на страницу на моем сервере, и они ставят косую черту после имени файла, но перед строкой запроса. Итак, это:
http://hydesim.com?dll=40.71427,-74.00597&yd=10&zm=12&op=156
... становится этим:
http://meyerwe b.com/eric/tools/gmap/hydesim.html/?dll=40.71427,-74.00597&yd=10&zm=12&op=156
…вместо этого:
http://meyerwe b.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
как вы уже догадались. Любая помощь с благодарностью!
2 ответа
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]