Удалить все строки запроса из URL - PullRequest
0 голосов
/ 27 декабря 2011

Я хотел бы переписать свой URL, чтобы, когда бы он ни был?, Он и все после удаляются.

У меня есть различные строки, такие как:

....html?frame=...

....html?sport=...

....html?type=...

Итак, чтобы было проще, если есть?в любом месте URL-адреса он должен быть обрезан.

(Кстати, я уже переписываю .php как .html)

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 27 декабря 2011

Как указано в комментариях:

RewriteCond %{QUERY_STRING} !=""
RewriteRule ^(.*)$ /$1?

Работает, но OP говорит, что возвращает обратное преобразование расширения php -> html.

Попробуйте добавить php / html rewrite до :

RewriteRule ^(.*)\.php$ /$1.html

RewriteCond %{QUERY_STRING} !=""
RewriteRule ^(.*)$ /$1? [L,R=302]

Я только что попробовал, и у меня возникли некоторые проблемы с RewriteBase, которые вам, возможно, понадобится настроить, чтобы это работало.В остальном выглядит нормально.

0 голосов
/ 27 декабря 2011

С Документация mod_rewrite (выделено):

Изменение строки запроса

По умолчанию строка запроса пропускается без изменений. Однако вы можете создавать URL-адреса в строке подстановки, содержащей часть строки запроса. Просто используйте знак вопроса внутри строки замещения, чтобы указать, что следующий текст должен быть повторно введен в строку запроса. Если вы хотите стереть существующую строку запроса, завершите строку замены только знаком вопроса. Чтобы объединить новые и старые строки запроса, используйте флаг [QSA].

...