我正在从PHP 5.5> PHP 7.3转移一个非常老的网站
在旧版本的WAMP上,URL重写可以正常工作,但是在最新版本上,URL不能按预期工作。
我正在最新版本的WAMP上对其进行测试,并且在Apache服务器中已安装了mod_rewrite。
除了少数几种,所有方法都适用于所有已加模式的URL,以下是一些无效的方法:
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^Control-Panel/Pages/Add/?$ Control-Panel/pages.php?mode=add [L]
RewriteRule ^Control-Panel/Pages/Edit/([0-9]+)/?$ Control-Panel/pages.php?mode=edit&pid=$1 [L]
RewriteRule ^Control-Panel/Pages/Manage/?$ Control-Panel/manage-pages.php [L]
RewriteRule ^Control-Panel/Pages/Menu/?$ Control-Panel/menu.php [L]
现在几乎相同但可以正常运行的代码是:
RewriteRule ^page/([A-Za-z0-9-]+)/?$ pages.php?slug=$1 [L]
RewriteRule ^page/([A-Za-z0-9-]+)/page-([0-9]+)/?$ pages.php?slug=$1&pagenumber=$2 [L]
RewriteRule ^portfolio/([A-Za-z0-9-]+)/([0-9]+)/?$ portfolio-single.php?slug=$1&pid=$2 [L]
我唯一能想到的是,由于Apache服务器运行的版本不同,它们的行为有所不同。
我在旧版本上的运行Apache 2.4.9 我在新版本上运行的是Apache 2.4.37
自较早版本以来,mod重写是否已更改?
答案 0 :(得分:1)
对于任何也了解这一点的人都可以,这是因为安装WAMP时会自动启用MultiViews。
在.htaccess文件中打开并找到:
Options
它应该在文件的顶部,只需将以下内容添加到文件中即可。
-MultiViews
如果由于某种原因您的选项具有+ MultiViews,则将其删除。
保存文件并重新启动apache服务器。