2014-01-10 3 views
0

У меня есть веб-сайт под WordPress, где я создал новую страницу www.foo.com/section/WordPress и .htaccess

Идея заключается в том, чтобы создать постоянную ссылку как www.foo.com/param1/type/param2 и .htaccess использовать правило перезаписи: www.foo.com/section/?var1=param1 & var2 = param2 & var3 = типа

RewriteEngine on 
Options +FollowSymlinks 
RewriteRule ^([a-z0-9_\s-.()&]+)/section1/([a-z0-9]+)$ /section/?var1=$2&var2=$1&var3=section1 
RewriteRule ^([a-z0-9_\s-.()&]+)/section2/([a-z0-9]+)$ /section/?var1=$2&var2=$1&var3=section2 

Я получил это работает в моем старом сайте, но в Сбой WordPress.

#My rules -> copy&paste 
RewriteRule ^([a-z0-9_\s-.()&]+)/section1/([a-z0-9]+)$ /section/?var1=$2&var2=$1&var3=section1 
RewriteRule ^([a-z0-9_\s-.()&]+)/section2/([a-z0-9]+)$ /section/?var1=$2&var2=$1&var3=section2 
# 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' 404 страницы

Я прочитал несколько вопросов здесь, но никто не помогает мне.

Спасибо за ваше время и наилучшими пожеланиями,

Р.

13 Jan

Я создал простой тест, чтобы проверить его.

Новая структура работает с тестом без проблем:

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

RewriteRule ^lol/$ project/ [L] #Rule 1 
RewriteRule ^foo/$ test/ [L] #Rule 2 

RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 
  1. Правило 1, я создал папку в корневом каталоге WordPress, под названием «проект» с index.php Вторя " Привет, папа ", и когда тип www.foo.com/lol/ загружает этот сценарий и перекликается с этим словом.
  2. Правило 2, я создал новую страницу WordPress, www.foo.com/test/ с простой строкой для показа, но когда я пишу www.foo.com/foo/, она дает мне ошибку 404 Кажется, перенаправление на страницы wp не работает, как я ожидал.

Отказ от ответственности: Конечно www.foo.com/test/

Теперь я stucked.

Спасибо за ваши предыдущие ответы и будущую помощь.

С наилучшими пожеланиями,

Р.

14 января

У меня есть новые новости :)

Новый .htaccess, который работает на:

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

RewriteRule ^([a-z0-9_\s-.()&]+)/alternator/([a-z0-9]+)$ ?page_id=554&supplier=$1&reference=$2&ref_type=A [L] 
RewriteRule ^([a-z0-9_\s-.()&]+)/starter_motor/([a-z0-9]+)$ ?page_id=554&supplier=$1&reference=$2&ref_type=M [L] 

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

Вместо перенаправления на «elecfinder /» в .htaccess, я указываю на «? page_id = 554», по крайней мере, d oesn't дает мне ошибку 440

Я работаю на сети генератора переменного тока и стартера.

У меня есть URL-адрес http://www.elecfinder.com/hitachi/starter_motor/s114850, который действительно является http://www.elecfinder.com/info/?supplier=hitachi&ref_num=M&reference=s114850, здесь я загружаю справочную информацию.

http://wp.elecfinder.com/elecfinder/?reference=s114850&supplier=hitachi&ref_type=M это веб-сайт в wp, поэтому моя идея - перенаправить http://wp.elecfinder.com/hitachi/starter_motor/s114850/ на это.

Теперь я могу перенаправить http://wp.elecfinder.com/hitachi/starter_motor/s114850 к http://wp.elecfinder.com/elecfinder/?page_id=554&supplier=hitachi&ref_num=M&reference=s114850 но есть 2 проблемы:

  1. Он изменяет URL в http://wp.elecfinder.com/elecfinder/ вместо поддержания wp.elecfinder.com/hitachi/starter_motor/s114850
  2. пропускающей GET параметры «ссылка», «поставщик» и «ref_type»

Спасибо за ваше время.

С наилучшими пожеланиями,

Р.

+0

Ваши правила перед 'RewriteEngine On' – anubhava

ответ

1

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

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

RewriteRule ^([a-z0-9_\s-.()&]+)/(section1|section2)/([a-z0-9]+)$ section/?var1=$1&var2=$3&var3=$2 [L] 

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

Всегда надевайте свои правила после RewriteEngine на. И в этом случае (WordPress) обязательно разместите свои правила до Правило WordPress (здесь нужно перенаправить все на index.php, потому что WordPress имеет фронт-контроллер и управляет переписыванием).

+0

Он работал с внешними папками из проекта wordpress, но если я попытаюсь перенаправить на страницу wp, произойдет сбой. Я добавил дополнительную информацию в начале. Спасибо :) – reverendocabron

+0

В вашем тесте это должно быть^foo/$ (с косой чертой), потому что вы пытаетесь получить доступ к www.foo.com/foo/. В противном случае, если вы хотите получить доступ к www.foo.com/foo (без завершающего косая черта), вы бы получили^foo $ –

+0

Ошибочно копировать строку. В .htaccess все в порядке. – reverendocabron