2015-01-24 7 views
0

На моем сайте есть страница с кодом, который считывает 3 параметра перед печатью содержимого. Страница выглядит следующим образом:Модификация Rewrite противоречит правилам перезаписи Wordpress?

/collaboratori collaboratore = 6 & п = Марио & с = Росси

Я хочу, чтобы преобразовать его в SEO дружественный URL как это:

/collaboratore-анкеты или/6/Марио/Росси

Я использую следующий Mod Rewrite правила:

RewriteEngine On 
RewriteRule ^profilo-collaboratore/([^/]*)/([^/]*)/([^/]*)$ /collaboratori?collaboratore=$1&n=$2&c=$3 [L] 

Но когда я пытаюсь загрузить/collaboratore-анкеты или/6/Mario/Rossi веб-сервер возвращает код 404 ошибки и Wordpress показывает мне страница 404 ошибки

Мой .htaccess является:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule ^profilo-collaboratore/([^/]*)/([^/]*)/([^/]*)$ /collaboratori?collaboratore=$1&n=$2&c=$3 [L] 
</IfModule> 

# 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> 

Где я неправ?

Спасибо большое

+0

Если URL-адрес обрабатывается Wordpress вообще (например, это плагин wordpress) или нет? – Sumurai8

+0

Да, это плагин, написанный мной – user3817605

+0

Wordpress полагается на URL-адрес, как он есть в адресной строке, а не на URL-адрес, который он переписан. Это означает, что переписывание url с mod_rewrite в вашем файле .htaccess не имеет никакого эффекта. – Sumurai8

ответ

0

Похоже, регулярное выражение, имеющее вопрос.

Попробуйте ниже правило, оно должно работать.

RewriteRule ^/profilo-collaboratore/(\w+)/(\w+)/(\w+) /collaboratori?collaboratore=$1&n=$2&c=$3 [NC] 

Я проверил его, добавив [R] флаг, чтобы увидеть переписанный URL во время перенаправления.

$ curl -IL http://localhost/profilo-collaboratore/6/Mario/Rossi 
HTTP/1.1 302 Found 
Date: Sat, 24 Jan 2015 15:03:24 GMT 
Server: Apache/2.4.10 (Unix) OpenSSL/1.0.1e 
Location: http://localhost/collaboratori?collaboratore=6&n=Mario&c=Rossi 
Content-Type: text/html; charset=iso-8859-1 

HTTP/1.1 404 Not Found 
Date: Sat, 24 Jan 2015 15:03:24 GMT 
Server: Apache/2.4.10 (Unix) OpenSSL/1.0.1e 
Last-Modified: Wed, 24 Dec 2014 08:11:27 GMT 
ETag: "13f-50af1d6a1b74d" 
Accept-Ranges: bytes 
Content-Length: 319 
Content-Type: text/html 
+0

Hi Kannan, спасибо, но это не работает. Как уже говорилось @ Sumurai8, это конфликт с правилами перезаписи Wordpress в его движке. Это не проблема, которая может быть решена с помощью .htaccess. Я обновлю вопрос, найду ли я решение – user3817605