[英]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.