Mod Rewrite Htaccess在WAMP上仅适用于某些功能,而不适用于其他功能

时间:2019-04-22 13:49:36

标签: apache .htaccess mod-rewrite

我正在从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重写是否已更改?

1 个答案:

答案 0 :(得分:1)

对于任何也了解这一点的人都可以,这是因为安装WAMP时会自动启用MultiViews。

在.htaccess文件中打开并找到:

Options

它应该在文件的顶部,只需将以下内容添加到文件中即可。

-MultiViews

如果由于某种原因您的选项具有+ MultiViews,则将其删除。

保存文件并重新启动apache服务器。