2015-08-18 2 views
3

Я хочу, чтобы перенаправить следующие ссылки:.htaccess перенаправить все содержимое вложенных папок (с и без прекращения слэш) в одну папку

/gallery/image-1/ 
/gallery/image-1 
/gallery/image-2/ 
/gallery/image-2 

к /gallery/, но это сложнее, чем это кажется на первый. Это из .htaccess:

RewriteEngine On 
RewriteRule ^gallery/(.*) /gallery/ [R=301,L,NC] 

Все URL первоначально перенаправляются на /gallery/, но тогда он просто продолжает загрузку, так как, по-видимому, этот URL также идет под ^gallery/(.*), поэтому он продолжает перенаправлять на тот же URL. Через несколько секунд браузер дает мне сообщение ERR_TOO_MANY_REDIRECTS.

Как я могу отредактировать заявление ^gallery/(.*) только с URL-адресами только с URL-адресом /gallery/?

ответ

1

Вы должны использовать .+ вместо .* в своем регулярном выражении, чтобы убедиться, чтобы остановить перенаправление, когда URI является /gallery/:

RewriteEngine On 

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

Спасибо, знак + работает как шарм! В конце я просто заменил * на +, и это было так: RewriteRule^gallery /(.+)/gallery/[R = 301, L, NC]. Почему вы разместили «галерею» в родительском положении в своем примере? –

+0

А это было просто, чтобы не повторять «галерею» как для источника, так и для цели «RewriteRule». – anubhava

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