あなたは自分でそれを難しくしています。 PHPで基本的なルーティングを行う方が簡単です。このような何かを、index.php
の上部に
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} (?>.*)(?<=\.php) [NC]
RewriteRule ^(?!index\.php$). index.php [NS,L]
:ディレクトリだけではありませんし、ファイルのいずれかでないか、またはPHPファイルで、あなたのindex.php
に何かを送る
<?php
$url = explode('?', $_SERVER['REQUEST_URI'], 2);
$url = substr($url[0], 1);
if ($url) {
$url = strtolower($url) . '.php';
if (preg_match('@^[^./][^/]*(?:/[^./][^/]*)*[email protected]', $url) && file_exists($url)) {
. # does not contain dotfiles, nor `..` directory traversal, so is a php file below web root
include $url;
}
else {
# virtual URL doesn't exist,
# set 404 response code header and serve a default page
include '404.php';
}
exit;
}
# no virtual URL, continue processing index.php
追加rel=canonical
各ページの<head>
に小文字のURL(クエリ文字列が再追加されている)が含まれているため、重複するコンテンツに対してペナルティを課されません。
何がうまくいかないのですか?あなたは300エラーを引き起こしたURIを投稿できますか? – starkeen
URLを大文字小文字を区別しないようにしようとすると、URLはhttp://dev-sql.digitreck.com/dev/Loginに従います。 http://dev-sql.digitreck.com/dev/Login.phpとして使用すると動作しますまたはhttp://dev-sql.digitreck.com/dev/login.php –