如何向网站添加页面(cPanel& Apache)

时间:2014-08-29 21:46:48

标签: html apache web cpanel

我对网络开发很陌生,对后端开发人员一无所知。我有一个由Linux服务器上的第三方托管的网站,使用cPanel。

我有一个index.html页面,当您访问网站www.domain.com时会加载该页面,我有第二个文件page2.html,当我转到www.domain.com/page2.html

问题1:

我希望能够转到www.domain.com/page2并加载page2.html。

问题2:

当我转到www.domain.com/page3.html(不存在)或www.domain.com/page3或任何其他不存在的网址index.html时,而不是给我404错误。我创建了一个自定义404页面(404.shtml),该页面与index.htmlpage2.html/public_html/)位于同一目录中。

当我访问不存在的网址时,如何显示此404页面?我检查了cPanel上的错误日志,它显示了一个文件不存在错误。

  

[2014年8月29日星期五20:16:48] [错误] [客户。* ]文件不存在:/ home / adminName / public_html / page3,referer:http://domain.com/page3/

任何正确方向的指针都会非常有用。

2 个答案:

答案 0 :(得分:1)

要从网址中删除后缀(.html),您需要使用.htaccess

以下将首先检查请求是文件(images / css等)还是目录,然后提供没有后缀的文件。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301] 

以下内容将提供自定义404错误文档

ErrorDocument 404 /404.shtml

答案 1 :(得分:0)

我刚刚在问题1中找到了类似的StackOverflow Question,而Łukasz Habrzyk的第二个答案对我有效。

#example.com/page will display the contents of example.com/page.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]

#301 from example.com/page.html to example.com/page
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]