2014-02-19 3 views
1

Я пытаюсь перенаправить все URL-адреса, содержащие определенную строку. В URLs выглядеть следующим образомURL перенаправления, содержащий определенную строку

http://www.domain/com/modules.php?name=Kalender&op=list&d=8&m=6&y=2034 

Я должен перенаправлять все адреса, содержащие

name=Kalender& 

в

http://www.domain.com/kalender/ 

Я попробовал несколько правил в моей .htaccess. Ни один из них не работал:

RewriteCond %{REQUEST_URI} name=Kalender& 
RewriteRule .* kalender 

RewriteRule ^(.)name=Kalender&(.)$ http://www.domain.com/kalender/ [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/name=Kalender&/i$ http://www.domain.com/kalender/ [NE,L] 

RewriteCond %{REQUEST_URI} name=Kalender& 
RewriteRule ^(.+)$ http://www.domain.com/kalender/ [L,R=301] 

RewriteCond %{QUERY_STRING} ^name=Kalender& 
RewriteRule ^name=Kalender& http://www.domain.com/kalender/ [R=301,L] 

RewriteRule ^(.*)name=Kalender&(.*)$ http://www.domain.com/kalender/ [L,R=301] 
RewriteCond %{REQUEST_URI} ^/modules.php?name=Kalender&$ 

RewriteRule ^(.*) http://www.domain.com/kalender [R=301,L] 

Это является WordPress .htaccess

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

Любая помощь будет оценен по достоинству!

ответ

0

Вы можете использовать это правило в качестве первого правила:

RewriteCond %{QUERY_STRING} (^|&)name=Kalender(&|$) [NC] 
RewriteRule^/kalender/? [L,R] 
+0

Отлично! Большое спасибо! Я хотел бы добавить 301. Является ли правильный синтаксис? RewriteRule ^/kalender /? [L, R = 301] – user2516117

+0

Да, это правильный синтаксис. Рад, что это сработало. – anubhava

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