你讓自己很難。如果你在你的php中進行基本路由,會更容易。剛送什麼東西給你index.php
這不是一個目錄,或者是不是一個文件或者是一個PHP文件:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} (?>.*)(?<=\.php) [NC]
RewriteRule ^(?!index\.php$). index.php [NS,L]
截至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 –