У меня есть перенаправления домена, которые указывают на страницу на моем сервере, и они ставят косую черту после имени файла, но перед строкой запроса. Итак, это:
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]