2015-02-03 2 views
0

У меня есть следующий .htaccess файл Он игнорирует мое правило перезаписи?mod_rewrite игнорирование строки в .htaccess

AddDefaultCharset utf-8 
Options +FollowSymLinks 
RewriteEngine On 
#this is the line not working 
RewriteRule ^/news/([0-9]+) /news-article.php?id=$1 [L,NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI} 

Я действительно новичок в переписывании правил. Все примеры, которые я нашел, говорят, что это должно сработать. Спасибо за вашу помощь!!

+0

это очень ... пушистый .... url ... проделал какую-либо базовую отладку, например, подбирая уровень ведения журнала перезаписи, чтобы вы могли видеть, что происходит, когда запрос обрабатывается? –

+0

Да, я удалил все строки, но тот не работает, но он не поймает его. – user3308713

+0

Можете ли вы уточнить, какой URL-адрес вы пытаетесь и что не работает? Также расскажите, где находится этот .htaccess? – anubhava

ответ

0

Если эти правила находятся в файле htaccess, вам нужно удалить ведущую косую черту из регулярного выражения. URI, используемый для матча ведущий слэш снял с версии Apache 2.

RewriteRule ^news/([0-9]+) /news-article.php?id=$1 [L,NC] 

Кроме того, вы хотите, чтобы это правило ниже другое правило, которое вы имеете, потому что один перенаправляет браузер, который испортит этот переписать.

+0

yes Я пробовал это, и это похоже на то, что правило игнорируется. Любые подсказки отладки? – user3308713

+0

Спасибо, что сработал – user3308713