简介设置

扩展 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