htaccess переписать путь, сохраняя старый путь в браузере - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть WordPress сайт с несколькими страницами.

Я хочу получить все эти пути:

/events/first
/events/second/edit/
/events/whatever/foo/bar

Перенаправлено на /show_event, но я хочу сохранить исходный URL (/events/second/edit) в браузере, потому что я использую скрипт react на внешнем интерфейсе, который должен читать из него.

Вот мой файл htaccess:

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{QUERY_STRING} !wc-api [NC]
RewriteCond %{HTTP_HOST} ^example$ [OR]
RewriteCond %{HTTP_HOST} ^www.example.com
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$

# RewriteRule ^(.*)$ https://example.com/$1 [R=301,L,NE]

# BEGIN iThemes Security
....

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

** MY CODE HERE **

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Вот что я пробовал:

RewriteRule ^events/.*$ https://example.com/show_event [NC,L]
RewriteRule ^events/.*$ ?pagename=show_event [NC,L]

Эти два выполняют перенаправление, но в URL появляется /show_event, поэтому я не могу его использовать

RewriteRule ^events/.*$ show_event [NC,L]
RewriteRule ^events/.*$ /show_event [NC,L]
RewriteRule ^events/.*$ ^show_event [NC,L]

Ни одно из этих трех правил не работает, я просто получаю страницу WordPress не найдена Страница ошибки

Есть идеи?

...