규칙을 정의한 방식에 따라 복잡성이 증가했습니다. 파일 이름이 그대로 파일 프로세스의 디렉토리 인 경우 규칙 위
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
는 을 의미한다. 그 후에는 더 이상 처리하지 마십시오.
는
RewriteRule ^(.*)$ http://www.website.com/profile.php?u=$1 [NC]
이 규칙은 당신이 첫 번째 규칙을 확인하고 일치하지 www.website.com
입니다 /
를 요청할 때 지금 profile.php?u=
모든 요청 URI를 매핑하는 것을 의미한다. 그런 다음 두 번째 규칙을 확인하고 profile.php?u=
에 매핑합니다. $_GET['u']
이 비어 있거나 profile.php
에서 /
경우,이를 해결하기 위해
- 한 가지 방법은 * 체크 할 것이다. 그런 다음
index.php
을로드하십시오.
또 다른 방법은 발견 된 사용자 이름에 적합한 정규 표현식을 찾는 것입니다.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(USERNAME_REGEX)$ http://www.website.com/profile.php?u=$1 [NC,L]
PHP를 사용하고이 문제를 해결할 수있는 가장 좋은 방법,
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?uri=$1 [L]
이제
index.php
당신이 통과 모든 URI를 얻을 것이다. 이제
index.php
에있는 URI를 처리 할 수 있습니다.
'www.website.com' 호스트의 문서 루트에있는이'.htaccess' 파일이 있습니까? –