Специфическая перезапись в htaccess, если есть параметр - PullRequest
0 голосов
/ 20 марта 2019

У меня установлена ​​WordPress с другой CMS в одной папке.

Как это:

https://example.com/ => WordPress
https://example.com/en/ => Custom CMS.

Мой htaccess:

RewriteEngine on
RewriteRule ^(en)($|/) - [L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Это отлично работает.

Теперь я перемещаю весь контент в установку WordPress. Мне нужно предварительно просмотреть изменения. Мне нужно это:

https://example.com/ => WordPress
https://example.com/en/ => Custom CMS
https://example.com/en/?preview_id=142&preview=true => WordPress

Мне нужно показать веб-сайт WordPress, когда в URL-адресе есть параметр предварительного просмотра.

Я пытался с этим:

RewriteEngine on

RewriteCond %{QUERY_STRING} !preview=true [NC]
RewriteRule . /index.php [L]

RewriteRule ^(en)($|/) - [L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Но это не работает. Есть идеи?

Ответы [ 2 ]

1 голос
/ 20 марта 2019

Как вы сказали I need to show the WordPress website when there is a "preview" parameter on the URL и что вы сделали, этот RewriteCond %{QUERY_STRING} !preview=true [NC] сделает это противоположным образом, поэтому измените его на:

RewriteCond %{QUERY_STRING} preview=true [NC]

, а также объявление ? в конце цели RewriteRule . /index.php?, чтобы избежать добавления строки запроса и создания циклов.

Ваши правила должны выглядеть так:

RewriteCond %{QUERY_STRING} preview=true [NC]
RewriteRule . /index.php? [L]
0 голосов
/ 20 марта 2019

Пожалуйста, просто удалите файл .htaccess. Как только вы удалите файловую систему, вы создадите новый файл auto, который будет работать для вас нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...