내 페이지에있는 모든 URL은 내 페이지에 http://domain.com/page/
, 확장자는 없지만 뒤에 슬래시가있는 것입니다. 사용자가 http://domain.com/page
또는 http://domain.com/page.php
으로 작성하면 첫 번째 URL로 리디렉션됩니다. 일부 인터넷 검색 후 나는이 코드를 발견하고 작동에 가까운, 그러나 당신이 당신의 요청에 후행 슬래시를 떠날 때 URL은 http://domain.com/Users/"..."/page/
같은 것을되고 그에은 404 내 htaccess로는 다음과 같습니다 반환htaccess와 함께 슬래시를 추가하면 절대 경로가됩니다.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
RewriteRule (.*)\.php$ /$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} !(.*)/$
RewriteRule (.*)/$ $1.php [L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .*[^/]$ $0/ [L,R=301]
추가 규칙을 추가하려고 시도했지만 실제로이 중 하나를 얻지 못해 어떤 답변도 찾을 수 없었습니다.
글쎄, 저도 도와 줬어! –
앤드류, 도와 줘서 고마워! 그것은 매우 깔끔하게 보이고 논리를 따르지 만 실제로 파일 확장자 나 후행 슬래시를 사용할 때 올바른 파일에 액세스하게 만듭니다. 어떤 확장자도 제거하지 않고 그 뒤에 슬래시를 추가하지 않습니다. 실제로 후행 슬래시를 사용하지 않을 때 404를 반환합니다. – Fredrik
@Fredrik URL의 * 확장자를 제거 하시겠습니까? 그렇다면 내부적으로 .php를 추가 할 계획입니까? 예를 들어 http://www.example.com/something.html에서 브라우저를 http://www.example.com/something/으로 리디렉션하고 싶다면 요청을 처리하기 위해 내부적으로 something.php를 사용하고 싶습니까? – Andrew