Как вы просто добавляете новые пользовательские изменения в .htaccess WordPress в обязательном порядке? - PullRequest
3 голосов
/ 12 апреля 2009

Я добавил некоторые дополнительные функции в свой WordPress, чтобы я мог просматривать его с помощью переменной и делать дополнительные вещи.

Проблема в том, что когда я превращаю свою уродливую динамическую ссылку в прекрасное форматирование permlink в файле .htaccess, WordPress переопределяет его / игнорирует. Я слышал, что есть способ сделать это, но способы, которые я пытаюсь сделать, основываясь на том, что люди сказали, все равно возвращают страницу 404 независимо. Я знаю, что файл, на который он указывает, работает.

2 способа сказать, что работает, но я не испытывал радости от:

1) вставить правила над частью WordPress #BEGIN 2) где-нибудь использовать функцию wordpress add_rewrite_rule ()

Кто-нибудь имел успех с этими методами? или другие методы?

Вот как выглядит мой файл .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/ref/(.*)$ /index.php?ref=1&sid=$1 [NC]
</IfModule>


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /


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


</IfModule>

В моих темах function.php Я также попытался добавить:

add_rewrite_rule('/ref/(.*)$', 'index.php?ref=1&sid=$matches[1]','top');

Безуспешно.

Я также пробовал решения над @ WordPress + mod_rewrite без радости.

Пожалуйста, помогите! :)

есть идеи?

Ответы [ 4 ]

3 голосов
/ 22 апреля 2009

Это работает - я только что проверил - Обратите внимание, я добавил L в конце RewriteRule

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule ^/ref/(.*)$ /index.php?ref=1&sid=$1 [NC,L]

#wp
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
2 голосов
/ 12 апреля 2009

В файлах .htaccess вы должны оставить начальную косую черту в шаблонах директивы RewriteRule. Итак, попробуйте это:

RewriteRule ^ref/(.*)$ index.php?ref=1&sid=$1 [NC]
2 голосов
/ 12 апреля 2009

новое правило всегда будет заменять старое

попробуйте следующее

<IfModule mod_rewrite.c>
RewriteEngine On
#wp
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteRule ^/ref/(.*)$ /index.php?ref=1&sid=$1 [NC]


</IfModule>
1 голос
/ 13 апреля 2009

Я закончил делать следующее в php, так как вышеуказанные решения, похоже, не работают. Правление Wordpress над файлом .htaccess является высшим:

if(strstr($_SERVER['REQUEST_URI'], '/ref/')) {

И благодаря этому смогли сделать довольно много такого же. Красивый URL, который переводится во что-то еще.

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