2017-01-12 4 views
0

리디렉션하지 않고 :htacess - SEO 친화적 인 URL을 내가 다음 페이지가있는 웹 사이트가

http://www.mywebsite.com/our-services 

또한

http://www.mywebsite.com/our-services?grade=1093    // 1093 = medium) 
http://www.mywebsite.com/our-services?grade=2890    // 2890 = high) 
http://www.mywebsite.com/our-services?grade=2890&p=2   // p = page 

내가 지금되고 싶은 표시되는 내용 변화하는 URL 매개 변수를 가질 수 있습니다 친숙한/깔끔한 URL로 사용할 수는 있지만 301 리디렉션은 없습니다.

http://www.mywebsite.com/our-services/medium-services 
http://www.mywebsite.com/our-services/high-services 
http://www.mywebsite.com/our-services/high-services/page-2 

이 가능하여 htaccess로인가 : 이상적으로는 예가되는대로 위의 URL을하고 싶습니다? htaccess로 내부 리디렉션을 생각하면 사용자에게 리디렉션하지 않고도이를 수행 할 수 있습니까? 여기를 보니 나는 같은 줄에있는 this post을 찾았지만 약간 다릅니다. 내가 그 예 예를하려고 할 때 또한 :

mysite.com/ucp/?player/Heartfire%3f 
:

mysite.com/ucp/profile.php?player=Heartfire 

그것은 나에게 다음 페이지를 제공합니다

RewriteEngine On 

RewriteCond %{THE_REQUEST} ^GET\ /ucp/profile\.php?([^=]+)=(\S+) [NC] 
RewriteRule ^ucp/profile\.php$ /ucp/%1/%2? [R=301,L,NC] 

# Now, deal with internal rewrites (which will not cause redirection): 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^ucp/([^/]+)/([^/]+)/?$ /ucp/profile.php?$1=$2 [NC,L] 

내가 더미 페이지에서 내가에 갈 때 테스트 한 때

다음과 같아야합니다.

mysite.com/ucp/profile/heartfire 

답변

0

RewriteCond은 도망 가기 위해 조정해야합니다. ? :

RewriteEngine On 

RewriteCond %{THE_REQUEST} ^GET\ /ucp/profile\.php\?([^=]+)=(\S+) [NC] 
RewriteRule^/ucp/%1/%2? [R=301,L,NC,NE] 

# Now, deal with internal rewrites (which will not cause redirection): 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^ucp/([^/]+)/([^/]+)/?$ ucp/profile.php?$1=$2 [NC,L,QSA] 

# new rules for /our-services/... 
RewriteRule ^(our-services)/high-\w+/?$ $1?grade=2890 [L,NC,QSA] 
RewriteRule ^(our-services)/high-\w+/page-(\d+)/?$ $1?grade=2890&p=$2 [L,NC,QSA] 

RewriteRule ^(our-services)/medium-\w+/?$ $1?grade=1093 [L,NC,QSA] 
RewriteRule ^(our-services)/medium-\w+/page-(\d+)/?$ $1?grade=1093&p=$2 [L,NC,QSA]