2016-10-28 5 views
0

Я обновлял сайт сегодня, и к моему удивлению, один из моих новых RewriteRules не работает. Я использую один и тот же «синтаксис» во всех правилах, но все еще проблема.HTACCESS RewriteRule не работает над всеми переадресациями

Мой код:

RewriteEngine On 
 
RewriteBase/
 

 
RewriteCond %{REQUEST_URI} !index.php 
 
RewriteCond %{REQUEST_FILENAME} !-f 
 
RewriteCond %{REQUEST_FILENAME} !-d 
 

 
RewriteRule ^produktinformation-om-(.*)/?$ /produktinformation.php?product=$1 
 

 
RewriteRule ^nyhet-(.*)-(.*)/?$ /merinfonyhet.php?id=$2 
 

 

 
RewriteRule (sv|en|cn)/$ /actions/action.set.language.php?lang=$1 
 
RewriteRule (sv|en|cn)/(.+)/$ /actions/action.goto.page.php?lang=$1&page=$2 
 

 

 

 
## MENU START 
 

 
RewriteRule ^information/?$ /information.php 
 
RewriteRule ^kontakt/?$ /kontakt.php 
 
RewriteRule ^nyheter/?$ /nyheter.php 
 
RewriteRule ^kvalitet/?$ /kvalitet.php 
 

 
RewriteRule ^produkter/?$ \t \t \t \t /produkter.php 
 
RewriteRule ^antioxidanter/?$ \t \t \t /category.php?cat=0 [NC,L] 
 
RewriteRule ^vitaminer/?$ \t \t \t \t /category.php?cat=1 [NC,L] 
 
RewriteRule ^mineraler/?$ \t \t \t \t /category.php?cat=2 [NC,L] 
 
RewriteRule ^viktkontroll/?$ \t \t \t /category.php?cat=3 [NC,L] 
 
RewriteRule ^leder-muskler/?$ \t \t \t /category.php?cat=4 [NC,L] 
 
RewriteRule ^omega-3/?$ \t \t \t \t /category.php?cat=5 [NC,L] 
 
RewriteRule ^smart-mat/?$ \t \t \t \t /category.php?cat=6 [NC,L] 
 
RewriteRule ^syn-tanke/?$ \t \t \t \t /category.php?cat=7 [NC,L] 
 
RewriteRule ^kraft-energi-fokus/?$ \t \t /category.php?cat=8 [NC,L] 
 
RewriteRule ^hjartat-karl/?$ \t \t \t /category.php?cat=9 [NC,L] 
 
RewriteRule ^nedstamndhet-stress/?$ \t /category.php?cat=10 [NC,L] 
 
RewriteRule ^samlevnad-lust-potens/?$ \t /category.php?cat=11 [NC,L] 
 
RewriteRule ^resa/?$ \t \t \t \t \t /category.php?cat=12 [NC,L] 
 
RewriteRule ^laktosintolerans/?$ \t \t /category.php?cat=13 [NC,L] 
 
RewriteRule ^hud-o-naglar/?$ \t \t \t /category.php?cat=14 [NC,L] 
 
RewriteRule ^halsokost/?$ \t \t \t \t /category.php?cat=15 [NC,L] 
 
RewriteRule ^halsomat/?$ \t \t \t \t /category.php?cat=16 [NC,L] 
 
RewriteRule ^barnmat/?$ \t \t \t \t /category.php?cat=17 [NC,L] 
 
RewriteRule ^pannkakor/?$ \t \t \t \t /category.php?cat=18 [NC,L] 
 
RewriteRule ^vafflor/?$ \t \t \t \t /category.php?cat=19 [NC,L] 
 
RewriteRule ^vlcdFrukost/?$ \t \t \t /category.php?cat=20 [NC,L] 
 
RewriteRule ^vlcdSoppor/?$ \t \t \t \t /category.php?cat=21 [NC,L] 
 
RewriteRule ^vlcdShakesDrycker/?$ \t \t /category.php?cat=22 [NC,L] 
 
RewriteRule ^fettforbranning/?$ \t \t /category.php?cat=23 [NC,L] 
 
RewriteRule ^kolhydratsblockerare/?$ \t /category.php?cat=24 [NC,L] 
 
RewriteRule ^grot/?$ \t \t \t \t \t /category.php?cat=25 [NC,L] 
 
RewriteRule ^modersmjolksersattning/?$ \t /category.php?cat=26 [NC,L] 
 
RewriteRule ^valling/?$ \t \t \t \t /category.php?cat=27 [NC,L] 
 
RewriteRule ^omega3-junior/?$ \t \t \t /category.php?cat=28 [NC,L] 
 
RewriteRule ^stillavatten/?$ \t \t \t /category.php?cat=29 [NC,L] 
 
RewriteRule ^lattkolsyrat/?$ \t \t \t /category.php?cat=30 [NC,L] 
 
## MENU END 
 

 

 

 

 

 

 
    
 

 

Проблема, которую я получаю с "? RewriteRule^stillavatten/$ /category.php?cat=29 [NC, L]" Третий снизу в коде.

Если я пишу, например: http://www.thepage.com/stillavatten/, то я получу 302 ответа с пустой страницей.

Если я заберу «/» в конце, я перейду на нужную страницу.

Если я попробую то же самое при любом другом переписывании, он работает с «/».

Я пробовал много разных решений, но не имел успеха, и это сводит меня с ума :) Я добавил «[NC, L]» к каждой строке, но это не помогло.

Любая помощь была бы действительно оценена.

+0

Вы видите что-нибудь необычное, если вы показываете скрытые/пробельные символы в вашем редакторе? TrIed удалить всю строку и снова ввести ее вручную? – Walf

+0

У меня нет скрытых пробелов и никаких странных скрытых символов. Я переделал весь файл по строчке и все еще ту же проблему. Я добавил весь код из моего HTACCESS в мой оригинальный пост. – Joakim

ответ

1

GET /stillavatten/ также соответствует шаблону соответствия правилу 4 (sv|en|cn)/$. Вы забыли закрепить это :)

+0

Ох ..., да ... хм ... Угадайте, если я сейчас буду дураком :). Очень большое спасибо за помощь TerryE. Я притягивал волосы к этому. Я добавил «^» infront этих двух строк, и теперь он работает. – Joakim

+0

Привет, у меня есть папка внутри моего поддомена, и я хочу переписать код. Например: https://sub.newdomain.com это мой поддомен. У меня есть проверка папки внутри каталога поддомена. «RewriteRule^/? Test/([^/d] +) /? $ Test/index.php? Rquest = $ 1 [QSA, NC, L]" Это мой код htaccess. Но когда я пытаюсь вызвать https://sub.newdomain.com/test/test, он возвращает ошибку 404. Как я могу это исправить. Apache mod_rewrite включен. –

+0

@SoorajlalKG, регулярное выражение '^ /? Test/([^/d] +) /? $' Не делает то, что вы думаете. Попробуйте повторную проверку, чтобы играть. – TerryE