2015-12-04 2 views
5

Для моего текущего проекта я должен перенаправить 301 некоторые ссылки, но когда вы вводите их с некоторыми дополнительными параметрами получения, параметры должны быть суффиксными на новом URL-адресе.RewriteRule не работает на производственном сервере

Пример:

Старые: /язык/нл/статья-1/тест = 123

новый:? /языка/нл/fa1-artcile-1/тест = 123

Поэтому я использую следующий код: (который прекрасно работает на моем Dev окр)

RewriteEngine On 
Options +FollowSymLinks 
RewriteBase /language/nl 
RewriteRule /artcile-1/* /language/nl/fa1-artcile-1/$1 [R=301,L] 

Но однажды на моем производстве окр он не работает, он по-прежнему перенаправляет на новый адрес но параметры get не добавляются на новый URL.

Редактировать: он перенаправляет, но не добавляет параметры.

Edit 2: полное заполнение

# 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 

Правило (s) переписывают прийти до WordPress части и у меня есть около 30 из них.

Любые предложения?

+0

Вы уверены, что перезапись включена и htaccess разрешен на вашем производстве? – Svetoslav

+0

Извините, я забыл упомянуть, что правило работает, но только параметры не добавляются на моем рабочем сервере. –

+0

@anubhava это сайт Wordpress, файл помещается в корень. –

ответ

0

Вам нужно присоединить query string:

# 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,QSA] 
</IfModule> 

# END WordPress 
1

Имейте это так:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 

RewriteRule ^language/nl/article-1/?$ /language/nl/fa1-artcile-1/ [R=301,L] 

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

# END WordPress 
+0

Это, скорее всего, будет работать, но для моего случая это не будет, просто обнаружите, что мы запускаем это на MS Azure env. Нам нужен файл web.config. –

+0

Хм, тогда как получилось, что у вас есть рабочий htaccess для wordpress – anubhava

+0

По-видимому, переписать правила просто не работают, но перенаправления 301 и т. Д. Работают именно так. –

0

Вероятно, другие ответы здесь являются правильными, а также. Но для моего дела они не сработают.

Env работает под MS Azure env, поэтому мне нужно иметь файл web.config вместо файла .htaccess (как бы то ни было, он работает для некоторой части).

Благодарим за помощь и помощь!