У меня есть правило RedirectMatch в моем файле .htaccess, которое работает нормально, но у меня возникают проблемы при создании сопоставимого правила с использованием mod_rewrite.
Моя цель - получить этот URL: mysite.com/что-нибудь / печать показать эту страницу: mysite.com/anything?view=print.
Правило, которое работает для перенаправления, таково:
RedirectMatch 301 ^(.*)/print/?$ http://mysite.com/$1?view=print
Но теперь я бы хотел изменитьэто из видимого перенаправления 301 в "невидимое" переписывание с использованием mod_rewrite.Я пробовал много разных вариантов (с RewriteBase и без), и ни один из них не работал:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)/print/? $1?view=print
Что я делаю не так?Mod_rewrite определенно включен, и в том же файле .htaccess есть действующие правила mod_rewrite на основе Wordpress.
ОБНОВЛЕНИЕ
Используя советы @Nathan, ятеперь есть это.Тем не менее, я все равно получаю 404 при посещении mypost / print.
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteRule ^(.*)/print/?$ /index.php/$1?view=print [L]
Когда я добавляю / print / к постоянной ссылке, плагин WP_Debug указывает на следующее:
Запрос: myposttype/mypost/print
Строка запроса: attachment=print
Соответствующее правило перезаписи: myposttype/[^/]+/([^/]+)/?$
Совпадающий запрос на переписывание: attachment=print