10

我正在使用 MODX 革命 2.2.4-pl。我正在使用提供的 .htaccess 文件并打开了友好的 URL。这些是我的重写规则。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

他们需要什么样的外观才能从 URL 中删除 .HTML?

在过去的二十分钟里,我一直在谷歌上搜索,但我的解决方案没有奏效。谢谢

4

3 回答 3

30

有一种更简单的内置方式。登录到管理器。

MODX 革命

2.2.x 及更早版本:转到System -> Content Types.

2.3.x 及更高版本:转到Content -> Content Types.

找到 HTML 并删除“文件扩展名”中写入的内容。您可以通过双击.html表格来激活可编辑字段来执行此操作。删除内容后,清除缓存。

MODX 进化

Tools -> Configuration -> Friendly URLs

删除“Friendly URL Suffix”中的内容。保存并清除缓存。

于 2012-09-04T23:03:40.130 回答
3

这对我有用:

# The Friendly URLs part
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]


RewriteCond %{REQUEST_URI} \.html$
RewriteRule ^(.*)\.html$ $1 [R=301,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
#RewriteRule . /index.php [L]
于 2012-09-04T17:07:04.483 回答
1

首先,我认为您需要了解这个 .htaccess 试图做什么。

它试图将所有进入站点的请求重定向到位于 index 的前端控制器.php。

如果您要做的是在您的网站上使用一堆 *.html 文件(而不是前端控制器),但让它们使用干净的 URL,那么您将需要使用不同类型的重写。可能更像是

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html [L,QSA]

此规则将以http://domain.com/somepage的形式接收请求,并让它静默指向http://domain.com/somepage.html以服务请求。

于 2012-09-04T17:03:53.173 回答