0

如果你看

http://ecocool.zadesigns.com

点击help链接,它转到

http://ecocool.zadesigns.com/help

这行得通,但如果您实际输入“ http://ecocool.zadesigns.com/help.html

这没用。

我如何修改 htaccess 文件,以便如果我输入

http://ecocool.zadesigns.com/help.html

进入地址栏,它会.html从 URL 中删除,加载 index.php 文件,然后将我发送到正确的页面。

这是htaccess文件。

 <ifModule mod_rewrite.c>
     Options +FollowSymLinks
     RewriteEngine on
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteCond %{REQUEST_URI} !index
     RewriteRule ^(.*)$ index.php?q=$1 [NC,L,QSA]
 </ifModule>
4

2 回答 2

2

如果您使用的是 MODX Revolution,请转到系统 > 内容类型并删除 HTML 内容类型的 .html 扩展名。

清除您的站点缓存,使用 Wayfinder 或 MODX 链接标签 ( [[~ ]]) 构建的任何链接将不再包含 .html 扩展名。

您将能够使用http://ecocool.zadesigns.com/wtf访问该页面

于 2013-08-28T03:25:09.323 回答
0

第一条规则从htmlto directory 样式重定向,我们不使用任何条件,因为我们不想检查文件是否存在。

第二条规则将格式目录重定向到 index.php 除非它是 index.php 然后它什么都不做。

所以基本上如果你点击链接:

http://ecocool.zadesigns.com/anything.html

它将使链接对用户看起来像这样:

http://ecocool.zadesigns.com/anything/

然后将在内部显示index.php?q=anything结果。

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteRule ^(.*)\.html$ /$1/ [R=301,NC,L]

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

如果您不介意让 URL 显示.html并且只想index.php在其位置提供服务,请使用:

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} .*\.html$
RewriteRule ^(.*)\.html$ /index.php?q=$1 [L,QSA]

所以基本上如果你点击链接:

http://ecocool.zadesigns.com/anything.html

它将在内部显示index.php?q=anything结果,并且 URL 将保留:

http://ecocool.zadesigns.com/anything.html
于 2013-08-28T02:09:33.167 回答