Wordpress 404 с пользовательским .htaccess переписать - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу сделать внутреннее перенаправление, поэтому

/ dev / spares / что угодно

равно

/ dev / spares /? pid = что бы то ни было

Но поддерживает каталог URL / dev / spares / любой внешний интерфейс.Это прекрасно работает с числами в моем .htaccess коде, показанном ниже.

/ dev / spares / 12345

Однако, если я использую любой текст

/ dev / spares / whats123

это дает 404. Я думаю, что это Wordpress, думая, что это подстраница, но я не знаю, как обойти это?Могу ли я как-то сделать исключение?

Вот мой .htaccess:

RewriteEngine on
RewriteBase /dev/
# My rewrite for internal query string
RewriteRule ^spares/([^/]+) spares/\?pid=$1 [NC]

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

, и я использую собственную структуру постоянных ссылок в Wordpress:

/%категория% /% postname% /

Заранее спасибо.

1 Ответ

0 голосов
/ 06 марта 2019

Я нашел решение здесь: https://wordpress.stackexchange.com/questions/247573/rewriterule-accepts-numbers-but-not-letters-in-tag

Использование функции Wordpress:

add_action( 'init', function(){
    return add_rewrite_rule(
        'spares/([^/]+)/?$',
        'index.php?pagename=spares&pid=$matches[1]',
        'top'
    );
});

add_filter('query_vars', function($v){ return array_merge(array('pid'),$v); });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...