Видалення затяжного кінцевого рядка після RewriteRule


0

Я спробував все, але, здається, не все виходить правильно :( у мене понад 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 %{QUERY_STRING} ^type=pdf&id=(.*)$ 
RewriteRule /?$ pdf/%1.pdf

І, звичайно, це неправильно виводить:

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

Я не можу позбутися ? Type = pdf & id = id123 наприкінці

Будь-яка допомога в правильному напрямку буде вдячна.

Відповіді:


0

Спробуйте додати рядкове скасування рядка запиту [QSD] :

RewriteRule /?$ pdf/%1.pdf [QSD]

Дякую, але це, схоже, не має ніякого значення: (я, здається, не можу отримати переадресацію, що працює через .htaccess локально - нічого не відбувається
— Хезер Керріган Валентин

Ви також повинні мати можливість замінити рядок запиту, закінчивши заміну на ?(порожня рядок запиту). Щоб отримати деякий вихід налагодження для перезапису, встановіть конфігурацію LogLevel warn rewrite:trace8.
— meuh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.