2013-08-21 3 views
2

.htaccess에 대해 RewriteRule이 있는데 URL의 모든 문자를 허용하고 싶습니다.RewriteRule .htaccess 모든 문자 허용

나는 모든 것을 통과 할 수 있도록

RewriteRule ^(.*)\.php$ file.php?key=$1 [L] 

로 변경 시도 나는 현재이 PHP

를 통해 코드를 어떤 나쁜 문자를

RewriteRule ^([a-zA-Z0-9\-]+)\.php$ file.php?key=$1 [L] 

되어 필터링하지만, 아무튼 일하지 마라. .htaccess에서만 PHP를 필터링하고 싶지 않습니다. PHP로 필터링해도 모든 사기꾼을 허용 할 수있는 보안 위험이 있습니까?

+0

서버 로그 란 무엇입니까? 어떤 지위를 얻고 있습니까? '404 - 찾을 수 없음 '? –

+0

@OskarHane 잘 작동합니다. 단지 .htaccess가 내 varibles를 필터링하는 것을 원하지 않습니다. 단지 이미 구현 된 PHP 만하고 싶습니다. –

답변

1
당신은 아마 파일이 그래서 당신이 무한 루프에 빠지지 마십시오을 리디렉션하기 전에 존재 여부를 확인 할

:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)\.php$ file.php?key=$1 [L] 

파일이 존재한다면 그것은 리디렉션 존재하지 않는 경우 첫 번째 줄은, 확인 .

당신은 이미 다른 file.php 예를 들어 반복 file.php에 자신을 리디렉션합니다 anything.phpfile.php?key=anything에, 리디렉션 한대로 두 번째 줄.

네, PHP 코드를 사용하기 전에 정보를 적절히 정리하면 URL에 아무런 문제가 없습니다.

+1

나는 그것이 맞았지만 키 = $ 1이 파일 이름을 위해서만 작동한다는 것을 깨달았습니다. PHP로 .htaccess를 통과하는 여러 변수를 어떻게 추가합니까? –

+2

@AbbyE'anything.php? var1 = something'과 같은 것이 있으면 무엇을 의미합니까? 그렇다면 QSA (query string append) 플래그를 사용하여 변수를 보관할 수 있습니다.'[QSA, L]' – Prix

+1

생명의 은인! 내가 원했던 것처럼 효과가 있었다. 감사! +1 –

0

모든 사기꾼이 PHP에서 걸러 낼 수있는 보안 위험이 있습니까? https://security.stackexchange.com/questions/11234/how-does-hacking-work

이 응용 프로그램에 따라 다릅니다 만 htaccess로는 보안 메커니즘으로 사용할 수 있습니다

예이 질문을 볼 수있다.

+0

내 file.php 코드는 SQL 인젝션으로부터 보호되며 PHP는 html 또는 funny chars에 대해 key = $ 1을 필터링합니다. –