2011-01-04 3 views
0

내가 읽고 아무 ​​소용이 고전을 면치 못하고있다Perl - Linux - "index.pl?see=this&foo=that&bar=that"url을 어떻게하면 좋게 할 수 있습니까? (index.pl/(see 값)

내가 가진이 같은 URL :?. http://my-domain.com/index.pl?see=this&foo=that&bar=that

I는 다음과 같이 표시 TI 싶습니다 :

이제
http://my-domain.com/index.pl/this 

참고 항목 URL에 다른 자리에 위치 할 수

은 "참조"값은 "친숙한"할 필요가! 나이이 밖으로 던져 보자. 그러나!

예 :

http://my-domain.com/index.pl?foo=that&see=this&bar=that (. http://www를 통해 또는 www를 액세스 할 수 없습니다)

은 여기와 다른 곳에서 게시물의 무리를 읽을 수는 있지만 내가 이해할 수있는 예제 나에게이 설명 아무것도 찾을 수 없습니다.

나는 심지어 가능하다면 ".pl"을 삭제하려고합니다.

죄송합니다. 이러한 멍청한 놈. 나는 도움이 필요합니다. 여기

내가 가지고있는 전체 htaccess로 파일입니다

RewriteEngine on 
RewriteRule ^/index.html$ /index.pl [L] 
RewriteRule index/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/$ /index.pl?$1=$2&$3=$4&$5=$6 

나는 또한

감사합니다 ..

+0

이 질문은 Perl 질문입니다. 웹 서버 란 무엇입니까? 아파치? – mob

+0

네, 아파치. 나는 스크립트가 쿼리에 사용 되었기 때문에 펄을 언급했다. 나는 진짜로 더 많은 것을 배울 필요가있다 .. – DulcimerDude

답변

1

URL 매개 변수를 스크립트에 전달하는 것이 더 나을지도 모릅니다. 나머지 처리는 유연성을 제공하므로 mod_rewrite 규칙을 복잡하게 만드는 대신 Perl을 처리하게 될 것입니다. 당신의 .htaccess 파일에 이런 식으로 뭔가 트릭을 수행해야합니다

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /path/to/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^request(/.*)?$ /path/to/index.pl [L] 
</IfModule> 

RewriteCond 지침은 다시 작성되는 기존 파일 및 디렉토리에 대한 경로가 방지 할 수 있습니다. 으로 제거해야하는 경우 index.pl의 경로가 다시 작성되지 않도록하거나 mod_rewrite가 모든 요청에서 루프로 바뀌는 지 확인하십시오.

그런 다음 index.pl 안에 $ENV{REQUEST_URI}의 모든 것을 가져 와서 해당 문자열을 슬래시로 분리하고 유효성을 검사하고 적절하게 할당 할 수 있습니다.

NB : 요청 경로에 대해서는 index을 사용하지 말 것을 권한다. 왜냐하면 아파치의 기본 설정이 (필자의 경우처럼) 그 키워드를 무시할 수 있기 때문이다.

+0

아, 그래, $ ENV {요청자} CGI를 사용하는 것보다 낫다! 다른 언어로 이동할 때 잊어 버린 것을 놀라 울 정도로 (잠깐이라도) – ekawas

2

당신이 찾고있는을 index.pl 할 수있는 index.html 지점을 만들려고 노력했다 아파치를 사용하고 있다면 mod_rewrite. 그것은 펄 :

http://httpd.apache.org/docs/trunk/mod/mod_rewrite.html

+0

그래, 나는 그것을 읽었다. 미안하지만, 나는이게 정말 새로운 것 같아. – DulcimerDude

+0

음, 뭐가 불분명하니? – OmnipotentEntity

+0

나는 그것을 이룩하려고 노력했다. 난 그냥 "그것을"얻을 수 없다 .. – DulcimerDude

-1

당신은 REST 인터페이스를 사용할 수와는 아무 상관 없어 것 :

http://my-domain.com/index.pl/see/this 

또는

http://my-domain.com/index.pl/this 

당신은 기본적 index.pl 스크립트가을 (또는 원하는대로 이름을 바꿉니다. 각 요청마다 URL 경로를 확인하십시오 ($ ENV {REQUEST_URI})

관련 문제