我的网站目前有www.website.com/about.html
。
但是,如果我在网址中输入www.website.com/about/
,则会显示默认的错误404页。
我在某处看过有关编辑htaccess文件的内容,但我不知道该怎么做。
答案 0 :(得分:2)
只需在htaccess的顶部添加此行即可减少您的网址扩展名:
Options +MultiViews
或者,如果您更喜欢mod_rewrite
,请在DOCUMENT_ROOT/.htaccess
文件中使用此代码:
RewriteEngine On
# To externally redirect /dir/file.html to /dir/file
RewriteCond %{THE_REQUEST} \s/+(?:index)?(.*?)\.html[\s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]
# To internally forward /dir/file to /dir/file.html
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule ^(.+?)/?$ /$1.html [L]
答案 1 :(得分:0)
/about/
是目录。在服务器上将调用该目录中的索引。*文件。
直接调用/about.html。或者(更详细地)将一个索引。*(可以是html php)改为/ about /而不是。
答案 2 :(得分:0)
www.website.com/about.html
正在审核存储在应用程序根文件夹中的名为about.html
的文件。
当您尝试访问www.website.com/about/
时,表示您正在尝试访问应用程序中名为“about”的文件夹中的文件。您在解决方案中没有它,并且您收到错误。
所以你访问它的方式是错误的。
请尝试使用以下代码删除.html并访问您尝试访问的文件
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
由于您要从应用程序网址中删除.html,因此无需在导航链接中编写.html,例如,
<a href="http://www.website.com/about">about</a>
答案 3 :(得分:0)
正如anubhava所提到的,您可以在.htaccess文件的顶部添加此行,以减少您的网址扩展: 选项+ MultiViews
但是你仍然需要以
的形式访问它www.website.com/about
因为
www.website.com/about/
您将转到about目录。希望这可以帮助。
答案 4 :(得分:-1)
您需要在Apache配置文件中进行更改。这个问题已在这里回答: How to remove .html from URL