日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

重定向index.php,使用htaccess将all重定向到index.php

發布時間:2025/3/21 php 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 重定向index.php,使用htaccess将all重定向到index.php 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我正在編寫一個簡單的基于PHP的MVC-ish框架.我希望這個框架能夠安裝在任何目錄中.

我的PHP腳本抓取請求uri并將其分解為段.它使段1成為控制器,段2成為行動.當我這樣做時,這一切都很好:

它將轉到特定的模塊控制器和方法.現在我有一個默認控制器,即家庭控制器,它位于文件夾主頁中.

我想將每個文件夾和php文件重定向回index.php,保留其他所有內容.

我遇到的第一個問題是它永遠不會重定向到正確的文件夾,總是重定向到域根文件夾.

這是我試過的:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule . index.php [L]

解決方法:

你的重寫規則看起來幾乎沒問題.

首先確保您的.htaccess文件位于文檔根目錄(與index.php相同的位置),否則它只會影響它所在的??子文件夾(以及其中的任何子文件夾 – 遞歸).

接下來對您的規則稍作修改,使其看起來像:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$/index.php?path=$1 [NC,L,QSA]

目前你只是匹配.這是任何字符的一個實例,至少需要.*來匹配任何字符的任意數量的實例.

$_GET [‘path’]變量將包含偽目錄結構,例如/ mvc / module / test,然后您可以在index.php中使用它來確定您想要執行的Controller和操作.

如果你想將整個shebang安裝在一個子目錄中,比如/ mvc /或/ framework /,那么最簡單的方法是稍微改變重寫規則以將其考慮在內.

RewriteRule ^(.*)$/mvc/index.php?path=$1 [NC,L,QSA]

并確保index.php位于該文件夾中,而.htaccess文件位于文檔根目錄中.

$_GET [‘path’]的替代品(18年2月更新和19年1月更新)

實際上并不需要(現在甚至不常見)將路徑設置為$_GET變量,許多框架將依賴$_SERVER [‘REQUEST_URI’]來檢索相同的信息 – 通常用于確定使用哪個Controller – 但原則是完全相同的.

這確實簡化了RewriteRule,因為您不需要創建path參數(這意味著OP的原始RewriteRule現在可以工作):

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^.*$/index.php [L,QSA]

但是,關于在子??目錄中安裝的規則仍然適用,例如,

RewriteRule ^.*$/mvc/index.php [L,QSA]

旗幟:

NC =無大小寫(不區分大小寫,因為模式中沒有字符,所以不是必需的)

L = Last(在重寫之后它會停止重寫,所以請確保它是重寫列表中的最后一個)

QSA =查詢字符串附加,以防你有類似的東西?喜歡=你想要保留的penguins并傳遞給index.php.

標簽:htaccess,php

來源: https://codeday.me/bug/20190911/1804309.html

總結

以上是生活随笔為你收集整理的重定向index.php,使用htaccess将all重定向到index.php的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。