2011-09-14 10 views
1

긴 URL을 짧은 URL로 리디렉션하는 방법이 있는지 알아야합니다..htaccess를 사용하여 한 페이지에서 다른 페이지로 다른 URL 다시 쓰기

내 웹 사이트의 여러 뉴스 항목을 나열하는 RSS 페이지가 있습니다. 각 항목의 URL 형식 (MySQL 쿼리 별)은 http://example.com/news.php?id=2과 같습니다.

news.php (RSS 페이지의 뉴스 제목을 클릭하면 뉴스 페이지로 리디렉션 된 후)에는 ID를 따라 이동하도록 설정된 매개 변수가 http://example.com/news.php?news=2&view=1&topic=12처럼 표시됩니다.

SEO 목적으로 시청자가 http://example.com/news.php?id=2 만 볼 수 있도록 erase 더티 쿼리 문자열이 필요하지만 서버 측에서는 실제로 http://example.com/news.php?news=2&view=1&topic=12입니다.

.htaccess 파일을 만들었으며폴더 (rss.php 파일이있는 폴더)에 배치되어 여러 번 시도했지만 사용할 수 없습니다.

도와주세요.

+0

당신은 사용해야합니다 http://example.com/news/2를 대신 http://example.com/news.php?id=2 –

+0

Zeus..yes의 하이 책, 맞아. . 나는 그걸로 잘못 됐어.하지만 나머지 설명들로 너를 도울 수 있기를 바랄 뿐이야. 어떤 생각이야? – steveVai

+0

및 귀하의 제안을 어떻게 성취합니까? – steveVai

답변

2

는 여기에 내가 무엇을 할 것이라고입니다 :

RewriteEngine on 

# id + view + topic 
# http://www.domain.com/news/1/1/12 will load: /news.php?news=1&view=1&topic=12 
RewriteRule ^news/([0-9]+)/([0-9]+)/([0-9]+)(/?)$ /news.php?news=$1&view=$2&topic=$3 [QSA,L,NC] 

하십시오 루트 폴더에서이 htaccess로.

+0

이미 시도했지만 실패 ..... 우리는 각 규칙에 L 플래그를 넣어야 만합니까? – steveVai

+0

.htaccess 파일은 어디에 두었습니까? 아니, 당신은 필요가 없다 –

+0

내가 말했듯이, 응용 프로그램의 루트 폴더 안에 넣어 .... 그냥 rss 폴더 안쪽에 ... 그리고 또 다른 것은, 나는 그것을 단지에 적용하고 싶지 않아요. 뉴스 항목, 클릭하면 뉴스 항목 중 하나에 적용되기를 원합니다. 그렇기 때문에 항상 화제가 될 수는 없습니다. 12 – steveVai

2

대신 매개 변수를 ($ 1, $ 2, $ 3 ... 등)에 할당해야합니까?

RewriteRule ^news(/?)$ /news.php?news=$1&view=$2&topic=$3 [QSA,L,NC] 
관련 문제