완전히 다른 3 가지 URL에 대해 동일한 URL을 사용하려면 PHP 페이지를 사용하여 '어떤 종류의'것이 '있는지 검색하고 요청을 특정 페이지로'라우팅 '해야합니다.
다음 (테스트되지 않은) 두 가지 규칙은 위에 나열된 모든 '못생긴'URL을 멋진 URL로 리디렉션하고 요청을 위해 사용해야하는 페이지를 결정하는 PHP 페이지에 대한 멋진 URL을 리디렉션합니다. %2
은 RewriteCondition의 두 번째 캡처 그룹에 대한 역 참조입니다. 후행 ?
은 쿼리 문자열을 지 웁니다.
<?php
$url = $_GET['url'];
if(isCity($url)) {
$city = $url;
include('city.php');
exit();
} elseif(isCountry($url)) {
$country = $url;
include('country.php');
exit();
}
#etc....
?>
더 논리적이 다른 것들, 예를 들어, 서로 다른 공상의 URL의를 사용하는 것입니다 : 같은 것을 가진 파일 myRouter.php
와
RewriteCond %{QUERY_STRING} (city|country)=([^&]*)
RewriteRule (country\.php|city\.php|state\.php) %2? [R=301,L]
RewriteRule ^([^/]*)$ myRouter.php?url=$1 [END]
/country/USA
은 country.php?country=USA
이고, /state/LA
은 state.php?country=LA
이고 /city/New-York
은 city.php?city=New-York
입니다.
이
쉽게 다음 (안된) htaccess로 함께 할 더 논리적 URL을 생성 할 수 있습니다
RewriteCond %{QUERY_STRING} (city|state|country)=([^&]*)
RewriteRule ^(country|city|state)\.php$ $1/%2? [R=301,L]
RewriteRule ^(country|city|state)/(.*)$ $1.php?$1=$2 [END]