2015-12-04 30 views
5

W przypadku mojego obecnego projektu muszę przekierować 301 niektóre łącza, ale po wprowadzeniu ich z dodatkowymi parametrami uzyskuję parametry, które muszą zostać dodane do sufiksu pod nowym adresem URL.RewriteRule nie działa na serwerze produkcyjnym

przykład:

Old: /język/NL// test = 123

nowy artykuł 1:? /język/NL/FA1-artcile-1/oznaczenie = 123

więc używam następujący kod: (który działa dobrze na moim dev ENV)

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

ale raz na moim produkcyjnej ENV to nie działa, to nadal przekierowuje na nowy adres URL ale parametry pobierania nie są dołączane do nowego adresu URL.

Edytuj: Wykonuje przekierowanie, ale nie dodaje parametrów.

Edit 2: pełna wypełnienie

# 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 

Reguła przepisać (a) pochodzić przed wordpress części i mam około 30 z nich.

Wszelkie sugestie?

+0

Czy jesteś pewien, że przepisywanie jest włączone, a htaccess jest dozwolone w twojej Produkcji? – Svetoslav

+0

Niestety, zapomniałem wspomnieć, że reguła działa, ale tylko parametry nie są dołączone do mojego serwera produkcyjnego. –

+0

@anubhava to witryna Wordpress, plik jest umieszczany w katalogu głównym. –

Odpowiedz

0

Musisz dołączyć 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

Czy to tak:

# 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

To prawdopodobnie działa, ale w moim przypadku nie będzie, po prostu odkryj, że uruchamiamy to na serwerze MS Azure. Potrzebujemy pliku web.config. –

+0

Hmm, jak to możliwe, że masz działający htaccess do wordpressa – anubhava

+0

Wygląda na to, że przepisywanie reguł po prostu nie działa, ale przekierowania 301 itd. Działają tak po prostu. –

0

Prawdopodobnie pozostali tu odpowiedzi są poprawne, jak również. Ale w moim przypadku nie będą działać.

Po uruchomieniu env jest środowiskiem MS Azure, więc potrzebuję mieć plik web.config zamiast pliku .htaccess (jakkolwiek działa na część).

Dzięki za szybką pomoc i myślenie!