2017-12-18 10 views
0

영구적 인 리디렉션이 작동하는 데 어려움을 겪고 있습니다. 나는 이것을 정규 표현식을 사용하여 발생시키고 싶다.htaccess Regex 301 Redirect

OLD URL : https://example.com/olddir/other_name_here/123456/garbage.jpg

NEW URL : https://example.com/newdir/other-name-here-123456/

밑줄에서 변화가 대시하는 주와 나는 숫자 문자열 동점 여분의 비트를 던지고있어 사실. 나는 이것을 시도했지만 작동하지 않는다 (페이지가 존재하지 않고 여전히 404를 얻는다).

RewriteRule ^/olddir/other_name_here/([0-9] {6}) /.+/newdir/other-name-here- $ 1/[R = 301, L]

나는 "other_name_here"디렉토리에 수백 개의 이름이 있으므로 밑줄을 동적으로 하이픈으로 바꾸면 좋지만 필요하지는 않습니다. . olddir과 newdir은 실제 이름이며 하드 코드 될 수 있습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 감사!

+0

당신이 당신의'.htaccess' 파일과'RewriteRule' 전에 다음 줄을 추가 한? 줄 1 : '옵션 + FollowSymLinks' 라인 2 :'한다 RewriteEngine On' 은 또한''후'$를'추가 ([0-9] {6}) /.+'적어도 마지막으로 , 새 URL이 있는지 (파일을 서버에서 사용할 수 있는지) 확인 하시겠습니까? – Allan

답변

0

다음 작업을 시도해보십시오

  • 만약 존재하지 않는 당신의 .htaccessRewriteRule하기 전에 다음 두 줄을 추가

    Options +FollowSymLinks 
    RewriteEngine On 
    
  • $을 추가하여 다음과 같은 방법으로 정규식 변경 :

    RewriteRule ^/olddir/other_name_here/([0-9]{6})/.+$ /newdir/other-name-here-$1/ [R=301,L] 
    
  • 새 URL 페이지에 직접 액세스하여 액세스 가능한지 확인하십시오.

마지막으로, 나는 .htaccess 세부 구성에 대한 자세한 내용은이 웹 사이트를 추천 할 것입니다 : https://mediatemple.net/community/products/dv/204643270/using-htaccess-rewrite-rules