2013-06-23 5 views
1

Я пытаюсь заставить этот RewriteRule работать, хотя по какой-то нечетной причине. Я думаю, это может быть% признаки того, что это завинчивания его:.htaccess RewriteRule со специальными символами

http://site.com/c%content_cc%/more-stuff/in/here

RewriteEngine on 
RewriteRule ^c%content_cc%/(.*)$ ccontent_cc/$1 [L] 

Я пытаюсь заставить его переписать: http://site.com/ccontent_cc/more-stuff/in/here

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

http://htaccess.madewithlove.be/

ответ

0

Проблема в том, что браузер видит % знак в URL, часто там, где он используется в URL encoding. Вы можете обернуть символы % в скобках, и они обрабатываются буквально. Здесь мы вытащим их из REQUEST_URI.

RewriteEngine on 
RewriteCond %{REQUEST_URI} ^/c[%]content_cc[%]/(.*)$ 
RewriteRule ^.* ccontent_cc/%1 [L] 

Если это редирект вы должны использовать R флаг:

RewriteEngine on 
RewriteCond %{REQUEST_URI} ^/c[%]content_cc[%]/(.*)$ 
RewriteRule ^.* ccontent_cc/%1 [R,L] 

Если это постоянный редирект вы должны использовать R=301

RewriteEngine on 
RewriteCond %{REQUEST_URI} ^/c[%]content_cc[%]/(.*)$ 
RewriteRule ^.* ccontent_cc/%1 [R=301,L]