search.php라는 페이지에 GET 요청을 보내는 검색 양식이 있습니다./htaccess 파일에서/검색과 같은 특정 내용을 각각의 페이지로 다시 작성하는 규칙을 다시 작성했습니다. 나는 단순히 search.php? q = 쿼리를 가져 와서/search/query에 다시 쓰려고합니다.간단한 htaccess 페이지 다시 검색/리디렉션
다음은 내가 가지고있는 것입니다.
RewriteRule search.php?q=(.*) /search/$1
RewriteRule search/(.*) search.php?q=$1 [nc]
내가 뭘 잘못하고 있니?! 여기
는 전체 파일ErrorDocument 404 /index.php?p=404
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^images/.*\.jpg$ /images/default.jpg [L]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?wghandcrafted.com/.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|psd|js|swf|flv|png)$ /feed/ [R=302]
RewriteRule ^(products|blog|feed|search|checkout|checkout)$ $1.php [nc]
RewriteRule products/cat/(.*)$ products.php?type=cat&cat=$1 [nc]
RewriteRule products/(.*)$ products.php?type=single&product=$1 [nc]
RewriteRule blog/(.*) blog.php&post=$1 [nc]
RewriteRule feed/(.*) feed.phptype=$1 [nc]
RewriteRule search\.php?q=(.*)$ /search/$1 [R=301,L]
RewriteRule search/(.*)$ search.php?q=$1 [NC]
아직도 작동하지 않습니다 ... 다른 제안? 전체 .htaccess 파일을 게시합니다. – watzon
@ sun-tzu : 수정 된 답변을 참조하십시오. 'RewriteCond % {REQUEST_FILENAME}! -f' 행이 문제이거나, 더 구체적으로는 배치입니다. –
죄송합니다 ..하지만 RewriteRule이 쿼리 문자열과 함께 작동하지 않습니다.이 방법은'search \ .php? q = (. *) $'작동하지 않습니다. RewriteRule 패턴은 URL의 경로 부분과 만 일치합니다. 비록 그것이 ... 매우 재 작성 루프를 얻을 것 같아도 (mod_rewrite 및 .htaccess 작업 방법) – LazyOne