2014-11-08 6 views
1

현재 내 htaccess에 다음과 같은 내용이 있습니다. 모든 페이지 다음에 '.php'가 있어야합니다. 예를 들어 URL.com/about으로 이동하면 URL.com/과 동일하게 작동합니다. about.php : URL.com/deals?make=samsung&model=X500DSEO 용 친숙한 URL htaccess Mod Rewrite

내가 뭘 성취하고 싶은 것은 위의 URL입니다을 통해 액세스 할 수있는 : URL.com/samsung-X500D/

Options -Indexes  
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d  
RewriteCond %{REQUEST_FILENAME}\.php -f  
RewriteRule ^(.*)$ $1.php 

나는 또한 URL에 두 개의 변수가 A를 페이지가 (후미 새시는 선택 사항 임)

나는 상단에 아래 기존 htaccess로 코드를 추가하는 시도했지만 난 500 서버 에러 코드를 얻을 :

RewriteRule ^([^-]*)-([^-]*)$ /deals?make=$1&model=$2 [L] 

나는 또한 페이지에있는 모든 CSS/IMG 파일을 다시 할 필요가 없습니다를 - 그것이 내가 바꾸고 싶은 URL.

+0

에 오신 것을 환영합니다! 일반적으로 [귀하의 게시물에 인사말이나 인사말을 사용해서는 안됩니다.] (http://meta.stackoverflow.com/questions/276033/pointless-question-edit/276037#276037) 여기에 동의합니다. 그들은 우리의 길을 걸어 실제 질문을 이해합니다. 나는 당신을 위해 이번에 그들을 편집했습니다. –

답변

0

당신은 포괄 PHP 규칙 전에 별 다시 쓰기를 사용하여 확인해야합니다 : 스택 오버플로

RewriteEngine On 

RewriteRule ^([^-]+)-([^-/]+)/?$ /deals?make=$1&model=$2 [L,QSA] 

# To internally forward /dir/file to /dir/file.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC] 
RewriteRule ^(.+?)/?$ /$1.php [L] 
+0

'RewriteCond % {DOCUMENT_ROOT}/$ 1 \ .php -f [NC]'에서,'$ 1' – Croises

+0

$ 1이 (가) mod_rewrite에서 거꾸로 처리 될 때 RewriteRule에서 캡처 된 값이라는 것을 이해하지 못합니다. 테스트 해 봤어? – anubhava

+0

방금 ​​RewriteCond에 대한 설명서를 읽었습니다. $ 및 % 감사합니다. – Croises

0

로 시도해보십시오

RewriteRule ^(.+)-(.+)$ deals.php?make=$1&model=$2 [L]