Удаление оставшейся конечной строки после RewriteRule

319
Heather Carrigan Valentin

Я перепробовал все, но просто не могу понять, что все правильно :( У меня есть более 800 URL-адресов, и мне нужно переписать их, чтобы указать на простой файл PDF. В настоящее время у меня есть ссылки на:

http://subdomain.mydomain.com/?type=pdf&id=id123 http://subdomain.mydomain.com/?type=epub&id=id123 

и мне нужно это:

http://subdomain.mydomain.com/pdf/id123.pdf http://subdomain.mydomain.com/epub/id123.epub 

Я прочитал справочные страницы htaccess и rewriterule, но мне все еще что-то не хватает. Я не могу удалить конечную строку (? Type = pdf & id = id123)

Вот что у меня есть:

RewriteCond % ^type=pdf&id=(.*)$  RewriteRule /?$ pdf/%1.pdf 

И конечно это неправильно выводит:

 http://subdomain.mydomain.com/pdf/id1234.pdf?type=pdf&id=id123 

Я не могу избавиться от ? Type = pdf & id = id123 в конце

Любая помощь в правильном направлении будет полностью оценена.

0

1 ответ на вопрос

0
meuh

Попробуйте добавить флаг запроса на удаление строки [QSD] :

RewriteRule /?$ pdf/%1.pdf [QSD] 
Спасибо, но это, кажется, не имеет значения :( Я не могу заставить работать редирект через локально .htaccess - ничего не происходит Heather Carrigan Valentin 5 лет назад 0
Вы также должны иметь возможность заменить строку запроса, завершив замену `?` (Пустой строкой запроса). Чтобы получить отладочный вывод для перезаписи, установите для конфигурации `LogLevel warn rewrite: trace8`. meuh 5 лет назад 0