漂亮的URL服务器端configuration?

我已经把一个网站转移到了我们的新VPS。 它在旧的服务器上工作得很好。 我想我知道是什么导致了这个问题,但不知道在哪里解决。

我已经阅读了很多关于漂亮url的post,似乎大部分都是使用mod_rewrite解决scheme。 看着我的.htaccess文件,它不是这样设置的。 它可能甚至不是漂亮的URL,完全叫做别的东西。

我们的VPS运行WHM / Cpanel

服务器版本:

Apache / 2.4.25(cPanel)OpenSSL / 1.0.1e-fips mod_bwlimited / 1.4

Apache 2.4,PHP 5.5,PHP 5.6和PHP 7.0

CENTOS 7.3 x86_64 virtuozzo – 服务器WHM 62.0(内部版本16)

我遇到了URL和.htaccess的问题。

以下是当前.htaccess文件的内容:

 Options -All SymLinksIfOwnerMatch MultiViews #AllowOverride None Order allow,deny Allow from all DirectoryIndex index 

当我去到网站时,我得到:

内部服务器错误
服务器遇到内部错误或configuration错误,无法完成您的请求。 请与网站pipe理员的服务器pipe理员联系,通知他们发生此错误的时间,以及您在此错误发生之前执行的操作。 有关此错误的更多信息可能在服务器错误日志中可用。 此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误。*

当我删除.htaccess文件中的一切,然后网站出现,但是当我点击一个链接说它没有find。 (在代码中,它不使用.php扩展名,所以它没有find页面。)

它在旧服务器上的工作方式是不使用.php扩展名。 所以,而不是http://www.example.com/make01.php它只是http://www.example.com/make01

所以我认为我必须添加一些configuration,才能使其在旧的VPS上运行。 我可以访问这两个VPS,并已经看过PHP.ini文件,但不完全确定我在找什么。

如果你能把我指向正确的方向,那就太棒了。

如果您需要更多信息,请让我知道。 这是我第一次发帖。 顺便说说大社区!

 Options -All SymLinksIfOwnerMatch MultiViews 

删除-All参数:

 Options SymLinksIfOwnerMatch MultiViews 

正如在Apache 2.4的Apache文档中提到的那样:

将选项与带+或 – 的选项混合使用是无效的语法,在服务器启动时会被中止语法检查而拒绝。

这似乎是在这里发生的事情。 -All参数是不必要的,因为您只是显式设置SymLinksIfOwnerMatchMultiViews 。 在Apache 2.2(旧服务器,我假设)这只会导致“意外的结果”,没有错误。

所以我认为我必须添加一些configuration,才能使其在旧的VPS上运行。

看起来你正在利用MultiViews ,所以你应该很好走。 启用MultiViews (mod_negotiation的一部分)后,对http://www.example.com/make01的请求将导致服务器search与所请求的基本名称和所需的MIMEtypes相匹配的相应文件,并将其提供给客户端。 例如。 /make01导致/make01.php被提供。

请注意,如果您稍后决定使用mod_rewrite来执行此URL重写,那么您可能需要禁用MultiViews因为它可能会发生冲突(常见的错误原因)。

它可能甚至不是漂亮的URL,完全叫做别的东西。

不pipe它是如何实现的,它仍然是一个“漂亮的URL”的forms。 这只是使URL更友好(或“漂亮”)的用户。