2012-12-06 3 views
2

빈 URI 또는 ​​숫자 슬러그 (페이지) (예 : example.com 또는 example.com/12)에 색인 파일을 표시하는 htaccess 파일을 작성하려고합니다. page = $ 1)htaccess 페이지 번호

그러나 숫자가 아닌 슬러그에 액세스 할 때는 다른 페이지로 이동해야합니다. 웬일인지, 나는 인덱스 파일 (심지어 공백이나 숫자 임에도 불구하고)을 치지 못하게했다. 내가 뭘 놓치고 있니? 여기

내가 가진 무엇 :

Options All 
RewriteEngine On 

RewriteRule ^([0-9]*)/?$ index.php?page=$1 [L] 
RewriteRule ^([^/]+)/?$ another_page.php?slug=$1 [L] 

해서는 안 빈 URI 또는 ​​숫자 URI 마지막 플래그 및로드의 index.php와 첫 번째 규칙을 명중? 내가하는 모든 요청은 another_page.php를 타격합니다.

고마워요!

+0

또한 마지막 줄 앞에 "RewriteCond % {REQUEST_FILENAME}! -f"와 "RewriteCond % {REQUEST_FILENAME}! -d"를 추가하여 재귀를 막을 수 있다고 생각했지만 아무 소용이 없습니다. – Harry

+0

실제로 행의 시작 부분을 찾고 있지 않기 때문에 정규 표현식의 시작 부분에 '^'가 마음에 들지 않는지 궁금합니다. – akronymn

+0

표현식을 가능한 한 엄격하게 작성해야합니다. 그대로, 현재 규칙이 약합니다. –

답변

1

아하,이 질문을 게시 한 직후에 알아 냈습니다.

나는 최종보다 위에 RewriteCond 라인이 필요했지만 원본 파일도 있어야했다. 나는이 htaccess 파일을 index.php 파일을 만들기 전에 설치했다 (나는 404를 찾고 있었다).

이는 일 것입니다 :

Options All 
RewriteEngine On 

RewriteRule ^([0-9]*)/?$ index.php?page=$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/?$ another_page.php?slug=$1 [L] 

고마워!