2013-09-05 2 views
2

내 웹 사이트에서 일부 하위 디렉토리를 제거하려고합니다. 현재 사용자 설정에 액세스해야 할 때 나는이 username.mywebsite.com/public/user/settings.php을 사용하며 나는 username.mywebsite.com/settings.php처럼 보이길 원합니다. 내 루트 디렉토리 A의 다음과 htaccess로 파일이 있습니다mod_rewrite를 사용하여 url에서 두 개의 하위 디렉토리를 제거하십시오.

RewriteCond %{REQUEST_URI} !^/public/user

RewriteRule ^/(.*)$ /public/user/$1

를하고 제대로 동작하지 않습니다. 또한,이 <a href="/settings.php">처럼 html href를 수정해야합니까? 고마워요

답변

1

정규식 패턴에서 앞선 /을 제거해야합니다. htaccess 파일의 규칙을 통해 URI가 전송되면 슬래시가 제거됩니다. 또한, 대신 대상이 존재하는 경우 /public/user/ 디렉토리에 재 작성하기 전에 확인해야합니다 :

RewriteCond %{REQUEST_URI} !^/public/user 
RewriteCond %{DOCUMENT_ROOT}/public/user%{REQUEST_URI} -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/public/user%{REQUEST_URI} -d 
RewriteRule ^(.*)$ /public/user/$1 [L] 

을 또한, 나는이 <a href="/settings.php"> 같은 HTML의 HREF를 수정해야합니까?

예, 규칙은 한 방향으로 만 작동합니다. 정규식 패턴 ~ 대상입니다. 그 반대의 방법은 없습니다. 따라서 콘텐츠에 사용하려는 URL이 있는지 확인해야합니다.

+0

매력처럼 작동합니다. 감사 – phcm

관련 문제