2012-12-23 2 views
0

작동하지 :htaccess로 RewriteRule의 내가 몇 페이지가 한 페이지

http://waleyqiao.com/about/ 
http://waleyqiao.com/index/ 
http://waleyqiao.com/contact/ 
http://waleyqiao.com/blog/ 
http://waleyqiao.com/portfolio/ 

을 실제 페이지 waleyqiao.com/about.html 것

htaccess로 :

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^([^/]+)/$ $1.html 

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteCond %{REQUEST_URI} !/$ 
RewriteRule (.*) $1\.php [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 

웬일인지, waleyqiao.com/portfolio/는 작동하지 않는 것 같지만 waleyqiao.com/portfolio.html은 ...

답변

2

당신이 URI의 끝 부분에있는 .html 바로 시침하는 때문입니다 :

/portfolio/.html 

분명히 존재하지 않습니다. 후행 슬래시없이 그룹화를 작성해야합니다. 대신이 시도 :

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/(.*?)/?$ 
RewriteCond %{DOCUMENT_ROOT}/%1\.html -f 
RewriteRule^/%1.html 

와 마찬가지로를 PHP 확장을 위해 :

RewriteCond %{REQUEST_URI} !/$ 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/(.*?)/?$ 
RewriteCond %{DOCUMENT_ROOT}/%1\.php -f 
RewriteRule (.*) /%1.php [L] 
관련 문제