워드프레스에서 .htaccess 파일 손대지 않고 /index.php/ 요청 Rewrite 처리하기
1. vhost 설정 파일에서 해당 도메인 관련 설정파일을 다음과 같이 설정한 뒤, httpd 데몬을 재시작합니다. (service httpd restart)
<VirtualHost *:80>
ServerName your.domain.com
DocumentRoot /your/home/path
<Directory /your/home/path>
DirectoryIndex index.php
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) – [E=BASE:%1]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? – [L]
RewriteRule .? %{ENV:BASE}/index.php [L]
</IfModule>
</Directory>
</VirtualHost>
ServerName your.domain.com
DocumentRoot /your/home/path
<Directory /your/home/path>
DirectoryIndex index.php
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) – [E=BASE:%1]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? – [L]
RewriteRule .? %{ENV:BASE}/index.php [L]
</IfModule>
</Directory>
</VirtualHost>
2. wp-admin 페이지에서 설정 > 고유주소에서 사용자 정의 구조를 다음과 같이 설정합니다.
http://your.domain.com/%postname%/
3. 이제 //your.domain.com/index.php/post-name 형태가 아닌, your.domain.com/post-name 형태로 사용할 수 있게 됩니다.
최근 댓글