2017-12-05 9 views
1

내가 /listing/category1에서 /products/category1이 문제 5.4

올드 경로 내 카테고리 페이지의 경로 업데이트 :

Route::get('/listing/{slug}', '[email protected]'); 

새로운 경로 :

Route::get('/products/{slug}', '[email protected]'); 

지금 내가 원하는에를 영구적으로 내 Old RoutesNew Routes (으)로 리디렉션합니다. 나는 새로운 URL을 수동으로 Redirect 301 스크립트에 기존의 모든 URL의 리디렉션 공용 폴더에 .htaccess 파일에 코드 아래에 추가했지만 작동하지 않았다, 그래서

은 4 ~ 5 종류가 있습니다.

Redirect 301 /listing/category1 https://www.example.com/products/category1 
Redirect 301 /listing/category2 https://www.example.com/products/category2 

있습니다 웹 사이트는 이렇게 링크가 https로 시작 SSL certificate을 가지고있다.

스택 오버플로 또는 내가 찾을 수없는 다른 웹 사이트에 어딘가에 해결책이있을 수 있습니다.

아래 코드를 .htaccess 파일에도 추가했지만 사용하지 않으려했습니다.

RewriteRule listing/category1 /products/category1 [R=301,L] 
RewriteRule ^listing/([a-zA-Z0-9_-]+)$ products/category1 
htaccess로 파일의

전체 코드는 다음과 같습니다 :

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    RewriteRule ^/?listing/([\w-]+)/?$ /products/$1 [L,NC,NE,R=301] 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
</IfModule> 

그래서 저를 영구적으로 Laravel 5.4의 새로운 경로 올드 경로를 리디렉션하는 방법 을 말하고 도와주세요?

미리 감사드립니다. 답에 대한

답변

3

이 작동합니다,

Route::any('listing/{any?}', function ($any = null) { 
    return Redirect::to('/products/'.$any, 301); 
})->where('any', '.*'); 
+0

감사합니다! 괜찮 았어. –

+0

몇 가지 정적 링크도 업데이트해야합니다. 정적 링크의 경로를 업데이트하는 방법을 알고 있습니까? –

+0

정적 인 것은'.html' 링크를 의미합니까? –