2016-10-22 5 views
1

새 링크로 리디렉션되는 약 50 개의 이전 링크가 있습니다. 그러나 리디렉션 대신 404 페이지로 전송됩니다.301 리디렉션 via .htaccess가 작동하지 않습니다.

아래 내 htaccess 파일입니다. 내가 뭘 잘못하고 있는거야?

## Mod_rewrite in use. 

RewriteEngine On 

## Begin - Rewrite rules to block out some common exploits. 
# If you experience problems on your site then comment out the operations listed 
# below by adding a # to the beginning of the line. 
# This attempts to block the most common type of exploit `attempts` on Joomla! 
# 
# Block any script trying to base64_encode data within the URL. 
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] 
# Block any script that includes a <script> tag in URL. 
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] 
# Block any script trying to set a PHP GLOBALS variable via URL. 
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] 
# Block any script trying to modify a _REQUEST variable via URL. 
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 
# Return 403 Forbidden header and show the content of the root homepage 
RewriteRule .* index.php [F] 
# 
## End - Rewrite rules to block out some common exploits. 

## Begin - Custom redirects 
# 
# If you need to redirect some pages, or set a canonical non-www to 
# www redirect (or vice versa), place that code here. Ensure those 
# redirects use the correct RewriteRule syntax and the [R=301,L] flags. 
# 
## End - Custom redirects 

Redirect 301 http://domain.me/blog.php?id=7 http://domain.me/blog 
Redirect 301 http://domain.me/iiblg/17-0-The-girl-with.html http://domain.me/blog/the-girl-with 
Redirect 301 http://domain.me/iiblg/20-0-Sendra-Lake.html http://domain.me/blog/sendra-lake 

더 많은 링크가 있습니다. 방금 여기에서 제거했습니다.

+0

당신의 .htaccess 활성화를? – mrid

+0

예 가능 했어요. –

답변

0

Redirect 지시문을 사용하여 쿼리 문자열과 비교할 수 없습니다. 이를 위해서는 mod-rewrite를 사용해야합니다.

example.com/blog.php?id=7는 다음과 같은 규칙이 필요 example.com/blog 리디렉션하려면 :

RewriteEngine on 

RewriteCond %{QUERY_STRING} ^id=7$ 
RewriteRule ^blog\.php$ http://example.com/blog/? [NC,L,R] 
+0

감사하지만 다른 링크는 어떻게 생겼습니까? 그 이후 2 개의 다른 링크는 나머지 URL의 형식입니다. –

+0

쿼리 문자열이없는 링크의 경우 Redirect 지시문을 사용할 수 있습니다 (이전 경로는 호스트로 시작할 수 없음). ** Redirect 301 /dir/filename.html http://example.com/newfilename/** – starkeen

+1

감사합니다. 완벽하게 작동했습니다. 호스트 이름에 대해 몰랐습니다. –