필자가 쓰고있는 링크 단축 서비스에 .htaccess를 사용하려고 시도해 왔습니다..htaccess/ModRewrite 문제
URL :http://domain.com/keyhere : 리디렉션 URL
http://domain.com/link.php?key=keyhere에 :http://domain.com/keyhere+ : 나는이 다음 달성하기 위해 시도하고
리디렉션
http://domain.com/analytics.php?key=keyhere에 내가 처음 일을 달성했지만, 후행 + 리디렉션 할 수 없습니다. +
남 이것에 대한 Y 코드는 다음과 같습니다 누군가가 필요한 재 작성 규칙을 올바른 방향으로 날 지점 수 있다면
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !#
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ link.php?key=$1 [L]
, 즉 큰 것.
미리 감사드립니다. 당신이 +
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
# Also added non-existing directory condition
RewriteCond %{REQUEST_FILENAME} !-d
# What's this for??
#RewriteCond %{REQUEST_URI} !#
# Match everything up to + ,followed by + first...
RewriteRule ^([^+]*)\+$ analytics.php?key=$1 [L]
# Next rule matches everything when there is no +
RewriteRule ^([^+]*)$ link.php?key=$1 [L]
패턴 [^+]*
는 최대하지만 +
을 포함하지 않는 0 개 이상 (*
) 문자와 일치하는 것을 의미와 일치하는 두 번째 규칙이 필요합니다, 그래서
완벽하게 일했다. 이제! 이상 당신에게 저를 시도하고 그것을 이해하는 시간 만 번 감사합니다! :) –
'^([^ +] *) \ + $'는 정규식입니다. '^'는 문자열의 시작을 의미하고, '[^ +]는 더하기가 아닌 문자'를 의미하고 '*'는 '0 번 이상 반복'을 의미하고, 마지막으로 '\ + 플러스 ", 그리고 그것은 정규식에서 정기적으로 사용되는 것처럼 탈출해야합니다. 마지막으로'$ '는 "문자열의 끝"을 의미합니다. – h2ooooooo