Recently, due to the proliferation and no requirement for extra infrastructure investments, WLAN indoor positioning has received more and more attention. As the most famous pattern matching based method, KNN algorithm is widely implemented. However, the extensive computing and poor positioning accuracy trouble the practical application. This paper proposes a novel two-step WLAN indoor positioning method to improve on the KNN algorithm, which is very effective in the environment with a large area, such as a long corridor. In the off-line phase, the K-means clustering algorithm is carried out to divide the target area into sub-regions. This process will effectively resolve the extensive computing. In the on-line phase, the first step is to use the SVM classifier to decide which the sub-region the test point belongs to. And the second step the KNN algorithm is implemented to calculate the precise position. The experimental results show that the proposed method can increase the positioning accuracy effectively about 0.3 m in average positioning accuracy, 17% within 2 m and 11% within 3 m in cumulative error probability respectively.