Apache-2.2
關於重寫引擎
我的 htaccess 文件包含這個
Options +FollowSymLinks RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^.*$ ./index.php
這會將所有請求重定向到我的 index.php 頁面,該頁面根據需要包含不同的文件。該文件基於 url 制動
/
並將輸出作為數組提供。
$request = split("/", $request);
如果有人訪問
mywork/yash
,查詢$request[0]
就可以正常工作yash
。但是當我為$request[1]
它程式時會undefined offset
出錯。我知道當訪問未定義的數組索引時會出現此錯誤,但是當訪問時
mywork/yash/
,該錯誤不再發生!。有人可以告訴我
.htaccess
在每個請求後添加一個尾部斜杠的規則,以便使用者鍵入mywork/yash
它後立即將其轉換為mywork/yash/
.提前致謝 !
終於找到解決辦法了!
做了一個輕而易舉解決的功能!
function redirect_to_unslashed($i)
{
if(isset($_SESSION['request'][$i]))
{
if($_SESSION['request'][$i] == '')
`{ navigate($_SESSION[‘request’][$i-1]);}
}`
}
如果最後一個斜杠包含空字元串,此函式實際上會重定向。
尾部斜線
使用重寫規則添加尾部斜杠是可能的,但不是有目的的,因為在這種情況下,您不能再重定向到
index.php
。如果你真的需要那個斜線,你仍然可以在你的 PHP 腳本中添加它。
拆分請求
假設它
$request
派生自$_SERVER['REQUEST_URI]
,您可以在每次出現 時將其拆分/
為$parts = explode('/', $request);
因為
mywork/yash
它會array(2) { [0]=> string(6) "mywork" [1]=> string(4) "yash" }
因為
mywork/yash/
它會是array(3) { [0]=> string(6) "mywork" [1]=> string(4) "yash" [2]=> string(0) "" }
但是在使用 時
$_SERVER['REQUEST_URI]
,您將始終有一個前導斜杠,這將導致第一個元素為parts
空字元串。不過,您應該能夠輕鬆地對空字元串進行排序。