簡介設定

擴充套件 realurl 在瀏覽器中提供了帶有 GET 引數的 URL 的完全轉換,例如“index.php?id = 123&type = 0&L = 1”到虛擬路徑中,所謂的 Speaking URL 就像“home / about-us” /index.html“又回來了。目標是 URL 應儘可能具有人類可讀性。

擴充套件非常靈活,可以提供從頁面 ID 的簡單轉換到幾乎任何可能的 GET 引數組合的編碼。

要安裝此擴充套件,必須執行以下四個步驟:

  1. 將其安裝在 Extension Manager 中
  2. 配置 Apache / .htaccess
  3. 使用 RealURL 的配置修改 TypoScript 模板記錄
  4. 在 typo3conf / localconf.php 中配置擴充套件

配置 Apache

RealURL 通過為虛擬檔案提供虛擬路徑來工作。這些實際上並不存在於檔案系統中,因此如果無法找到該檔案,你必須告訴 Apache 讓 PHP 指令碼處理該請求。這樣,頁面的所有 URL(如 www.server.com/products/product1/left.html)都將重定向到/index.php,後者將處理將 URL 轉換為 GET 引數的過程。儘管如此,真實檔案(如影象,TYPO3 後端,靜態 html 檔案等)仍將由 Apache 自己處理。

你應該將提供的示例 .htaccess 檔案(稱為_.htaccess)放在 TYPO3 安裝的根目錄中。

或者,你可以在 httpd.conf 中包含以下行,可能在 VirtualHost -section 中。這是一個例子:

<VirtualHost 127.0.0.1>
    DocumentRoot /var/www/typo3/dev/testsite-3/
    ServerName www.test1.intra

    RewriteEngine On
    RewriteRule ^/typo3$ - [L]
    RewriteRule ^/typo3/.*$ - [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule .* /index.php
</VirtualHost>

如果你將它放入 .htaccess 檔案中,它必須看起來略有不同,基本上剝離前導斜槓(“/”):

RewriteEngine On
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php

這將告訴 Apache 它應該重寫每個不是檔名,目錄或符號連結的 URL。它留下了以/ typo3 /單獨開頭的一切。

NGINX 配置 (可選)

如果 NGINX 作為 HTTP 伺服器而不是 Apache 的,重寫規則也需要申請,並放入伺服器的網站結構的剖檢視從網站可用

location / {
  try_files $uri $uri/ /index.php$is_args$args;
}

TypoScript 配置

將這三行放在你網站的主要 TypoScript 模板記錄中:

config.simulateStaticDocuments = 0
config.baseURL = http://mydomain.com/
config.tx_realurl_enable = 1

第 1 行只是禁用 simulateStaticDocuments - RealURL 與 simulateStaticDocuments 不相容,如果已啟用它將無法正常工作。這條線應該提醒你這個事實。

第 2 行使前端輸出頁面標題中的 <base> 標記。這是必需的,因為除非已設定虛擬路徑,否則在使用虛擬路徑時,對影象,樣式表等的相對引用將會中斷。請參閱下面的詳細討論,瞭解為何需要這樣做。別忘了寫下你域名的真實姓名! 並注意到最後的斜線 - 它是必需的!

第 3 行可以將 URL 編碼為虛擬路徑,即 Speaking URL

如果使用 config.typolinkEnableLinksAcrossDomains,請確保在站點根目錄的所有頁面上選中“是站點根目錄嗎?”。

最後,你必須生成一個 realurl.conf.php 檔案。你可以通過允許擴充套件程式自動建立它,也可以手動執行。

將在下一個主題中介紹

禮貌:

德米特里·杜勒波夫

https://docs.typo3.org/typo3cms/extensions/realurl/Realurl/Index.html