簡體   English   中英

htaccess在變量目錄(cms目錄)中重寫為index.php

[英]htaccess rewrite to index.php in variable directory (cms directory)

我遇到了以下問題:我想構建一個腳本,該腳本應該在每個目錄中都可以使用,無論根目錄還是子目錄 因此,最重要的是,我有一個.htaccess文件,它將所有請求重定向到腳本安裝目錄中的index.php 重定向很簡單,有很多教程。 但是問題是我不知道腳本的安裝路徑。 我不知道這是子目錄還是根目錄。 我看到的唯一解決方案是制作一個install.php,它將使用正確的路徑修改htaccess。 但是,有更好的解決方案嗎?

謝謝!

更新:由於我的問題顯然存在誤解,我將舉一個例子。 假設我的項目僅包含一個index.php和一個.htaccess文件。 .htaccess文件應將所有請求重定向到index.php。 但是 ,這非常簡單但是.htaccess文件不知道將在哪個目錄中調用該文件,因此可能是用戶將項目安裝在/ xyz /中,也安裝在根目錄/中。 如果我請求xyz / abc / 123 / echo / world / .htaccess文件不知道index.php在哪個目錄中進行重定向,它僅知道它應該重定向到根目錄的index.php的腳本。 因此,我的解決方案是制作一個install.php並使用正確的路徑更改.htaccess文件,但是沒有更好的解決方案嗎?

將此規則放在您的根.htaccess中:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?/)?[^/]+$ /$1/index.php [L]

這會將所有不是有效文件/目錄的請求都重寫為該子目錄的index.php

編輯:如果要將其放在/anydir/然后使用:

RewriteEngine On

RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
RewriteRule ^(.*)$ - [E=BASE:%1]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . %{ENV:BASE}index.php [L]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM