2013-05-28 2 views
0

У меня есть:301redirect удалить папку из URL

mydomain.com/folder-name/segment1/segment2 

Я хочу изменить его на:

mydomain.com/segment1/segment2 

с помощью 301 редиректа.

Я пробовал:

RewriteCond %{REQUEST_URI} !^/test/.*$ 
RewriteRule ^(.*)$ /test/$1 [L] 

но не работает

вот мой htacess файл:

# #AddHandler application/x-httpd-php53 .php .php5 .php4 .php3 

RewriteEngine on 
RewriteBase/


RewriteCond %{REQUEST_URI} ^/b1/.*$ 
RewriteRule ^(.*)$ /b1/$1 [R=301,L] 

ответ

1

Ответ на первую часть вопроса должна быть такой :

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/? $2/$3 [R=301,L] 

Второй код, который вы пробовали, противоположно тому, что вы просите вначале. Эта линия соответствует ничего не начиная с /test/:

RewriteCond %{REQUEST_URI} !^/test/.*$ 

Эта линия говорит взять все и переписать его в /test/ каталоге:

RewriteRule ^(.*)$ /test/$1 [L] 

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

Если вы пытаетесь специально удалить тест слова, вы должны удалить символ ! в попытке создать совпадение. Поскольку вы уже знаете, что это называется test, нет необходимости даже заставлять Apache выполнять этот поиск для «теста», потому что Apache handles the RewriteCond statement after the RewriteRule (скорее, неинтуитивно).

RewriteCond %{REQUEST_URI} ^/?test 

Вы можете специализировать правила перезаписи, как это (я добавил [QSA], чтобы все строки запроса:

RewriteRule ^test/([^/]+)/([^/]+)/? $1/$2/ [R=301,L,QSA] 
+0

Это делает работу по на http://htaccess.madewithlove.be/, но он не работает на моем сайте. Я собираюсь продолжить исследование и задать новый вопрос – user61629

1

Просто измените код:

RewriteRule ^test/(.*)$ /$1 [R=301,L,NC] 
+0

извините, что не работает адресная строка все еще показывает mydomain.com/fo lder-name/segment1/segment2 not mydomain.com/segment1/segment2 – user61629

+0

Для изменения URL-адреса в браузере (внешнее перенаправление) вам понадобится флаг 'R'. Я только что редактировал свой код, попробуйте сейчас. – anubhava

+0

Он работает в соответствии с http://htaccess.madewithlove.be/, но не работает на моем сайте. Я собираюсь исследовать дальше и опубликовать новый вопрос – user61629

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