我下载了一个名为sphpblog的简单PHP博客模板,并将其放在我的服务器上。 博客通过classlibrary.org访问。 该域redirect到服务器上的/ other / william / classlibrary文件夹。 我可以访问博客的主页,它显示得很好。 但是,当我尝试点击链接时,链接将转到classlibrary.org/other/william/classlibrary/linkname.extension,这会导致404错误。 我检查了博客的首选项,并没有select将其直接指向网站的根目录。 所以,我想有任何链接到classlibrary.org/other/william/classlibrary/filename.extensionredirect到classlibrary.extension。
而不是为服务器上的每个文件创build单独的html文件,这将需要一段时间,我可以以某种方式通过.htaccess文件做到这一点? 我的服务器运行的是PHP 5.2版,完整pathclasslibrary.orgredirect到/ home / content / r / t / e / rteder10 / other / william / classlibrary。 我无权访问pipe理员控制面板或访问权限或服务器本身。 这是Godaddy Linux主机。 任何帮助将不胜感激。
假设服务器被configuration为允许覆盖,你可以使用mod_rewrite来创build各种映射。 恐怕你的情况具体有些令人费解。 我不清楚你在哪里保存这些名单,以及是否有任何连贯的规则来build立它们。 如果有一个系统,你可以像这样使用mod_rewrite:
RewriteEngine on RewriteRule ^/other/william/classlibrary/([az]*).ext /other/william/classlibrary/$1library.ext
但是,只有当链接名称与类名匹配时才有效。 你可以在http://httpd.apache.org/docs/current/mod/mod_rewrite.htmlfind关于mod_rewrite的更多信息。
如果关系对于正则expression式来说过于复杂或任意,而且反向引用是有用的,则可以使用rewritemap,这将允许您创build任意重写的表。 http://httpd.apache.org/docs/2.3/rewrite/rewritemap.html
如果所有这些看起来都太复杂了,而且没有太多的redirect,那么可以使用简单的redirect命令在.htaccess文件中逐一执行。
Redirect /other/william/classlibrary/filename.extension http://classlibrary.org/other/william/classlibrary/classlibrary.extension
你也可以创build一个简单的404error handling程序,它将分析请求的URL,如果URL是你需要的,就用所需的名字创build一个页面的副本。 所以,网站会自动更新自己的第一个请求,然后不需要redirect,因为新的(右名称)文件将就位。
在404error handling程序脚本中,当您创build一个新文件时,您将回复(给用户)http代码200和页面内容,所以即使第一次访问访问者也不会看到错误。