2014-10-26 4 views
-3

Ниже приведено мое htaccess и Redirect 301 не работает. есть идеи? ДирективаПеренаправление 301 .htaccess не работает

 

    order allow,deny 
    allow from all 
    Options -Indexes 
    Options +FollowSymLinks 
    RewriteEngine On 
    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule . index.php [L] 
    Redirect 301 /index.php?id=4 site.com/newdirectory/ 

+1

-1: почему 'порядок позволит, deny' если вы собираетесь отрицать, от всех и, пожалуйста, определить«не работает». –

+0

У меня есть это перенаправление: Перенаправление 301 /index.php?id=4 site.com/newdirectory/, и это не работает – Hargo

+0

Вы уже сказали, что, как это отвечает на мои вопросы? –

ответ

1

order не нужно просто принять его. Кроме того, вы не можете соответствовать строке запроса в Redirect директива использования RewriteCond из mod_rewrite вместо так:

RewriteEngine On 
RewriteBase/

RewriteCond %{QUERY_STRING} ^id=4$ [NC] 
RewriteRule ^index\.php$ /newdirectory/? [L,NC,R=301] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule . index.php [L] 
+1

@anuhava Просто обратите внимание, что флаг '[NC]' в этом случае должен быть на 'RewriteCond', а не только' RewriteRule'. Кроме того, по умолчанию '[R]' выдает «302» (временное) перенаправление, поэтому нет необходимости указывать код ответа, если вы не хотите выпустить другой тип или перенаправить. (Для тех, кто не знал, что вы можете изменить код ответа, вы можете технически использовать любой код, но только те из 3xx диапазона будут работать без ошибок. Вы также можете обратиться к наиболее распространенным типам по ключевому слову: 'temp' = = '302',' constant' = '301' и' seeother' = '303'.) – justbeez

+0

Да, что правильно @justbeez – anubhava

Смежные вопросы