2014-04-20 4 views
1

// 문법 오류 및 기타 잘못된 것이 있으면 유감스럽게 생각합니다. 영어는 모국어가 아닙니다.htaccess seo url에 대한 매개 변수를 가져옵니다

나는 htaccess로 SEO 친화적 인 URL을 만들었습니다. 유일한 문제는 내가 항상 GET을 사용하여 URL에서 정보를 얻고 이제는 할 수없는 SEO 친숙한 URL로 정보를 얻는다는 것입니다.

내 이전 URL이 있었다 :

http://rasolutions.eu/blogitem?id=2 

그래서 PHP에서이 $ _GET 것 [ 'ID'] 그것은하지만 지금 내가이의 SEO 친화적 인 URL을 가지고 있음 2. 다음과 같습니다

http://rasolutions.eu/blogitem/2/ 

이제 내 PHP 스크립트는 어디에서 ID를 얻을지 알 수 없으므로 나를 다시 홈페이지로 돌려 보낼 것입니다.

나는 당신이 htaccess에서 (. *)를 사용해야한다고 Googled했다. 그러나 나는 어디서 어떻게하는지 모른다. 내 htaccess로 코드이 기압 : 마지막 두 규칙이 예에 따라 당신이 게시 구문 (.*) 것을없이 정확해야

Options +MultiViews 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

# WWW to not WWW. 
RewriteCond %{HTTP_HOST} ^www\.rasolutions\.eu$ 
RewriteRule ^/?$ "http\:\/\/rasolutions\.eu\/" [R=301,L] 
    RewriteRule ^blog/(.*)([0-9]+)/$ blog.php?page=$1 [NC,L] 
    RewriteRule ^blogitem/(.*)([0-9]+)/$ blogitem.php?id=$1 [NC,L] 

답변

1

. 그리고 당신은 유연한 방식으로 후행 슬래시 (/) 알아서해야 : 일반적으로

Options +MultiViews 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

# WWW to not WWW. 
RewriteCond %{HTTP_HOST} ^www\.rasolutions\.eu$ 
RewriteRule ^(.*)$ http://rasolutions.eu$1 [R=301,L] 

RewriteRule ^blog/([0-9]*)/?$  blog.php?page=$1 [NC,L] 
RewriteRule ^blogitem/([0-9]*)/?$ blogitem.php?id=$1 [NC,L] 

는 당신이 그것을에 액세스 할 수있는 경우 RewriteLogging를 사용하는 매우 좋은 생각입니다. 그것은 이되는 것을 추측하는 대신 각 단일 하위 단계에서 재 작성 엔진 내부에서 일어나는 일을 정확하게 이해하는 데 도움이됩니다.

+0

죄송하지만 여전히 문제가 해결되지는 않습니다. PHP 스크립트는 여전히 id를 어디에서 가져올 지 모릅니다. htaccess에서 블로그/페이지가 올 것인가를 지정하는 방법은 무엇입니까? – RezaM

+0

물론 가능합니다. '$ _GET [ 'id']'('$ _GET [ 'page']')는'http : // rasolutions.eu/blogitem/2'에서 마지막 슬래시 ('/') 다음에 지정된 내용을 유지합니다. 그것이 재 작성의 요점입니다! 이 두 줄이 실제로 요청과 일치하는지 확인해야하므로 실제로 적용됩니다! – arkascha

+0

그건 : 당신은 _really_ 당신이 마지막 슬래시 끝에 _really_ 준 예제 URL을 확신합니까? 왜? – arkascha

관련 문제