Nginx 重写为 Apache 重写规则以获取路径

Nginx 重写为 Apache 重写规则以获取路径

我有一个登录页面和一个文本框。他们在文本框中输入一些内容,然后转到 /search,我想在其中加载 search_res.html。我的文件结构如下:

/var/www/html
    index.html
    search_res.html

我已经在 Nginx 上运行了它,但我必须迁移到 Apache。我似乎无法让以下 Nginx 代码在 Apache Web 服务器上运行:

location /search {
    rewrite ^/search$ /search_res.html; 
}

我已经评论过如何将 nginx 转换为 Apache 重写,并补充:

RewriteRule ^/search$ "search_res.html" [R=302,NC,L]但我仍然看到 404 错误。有什么想法可以解决吗?

虚拟主机配置如下:

<VirtualHost _default_:10002>


DocumentRoot "/var/www/html"
ServerName ${SERVER_ENV}

SSLEngine on
SSLCertificateFile "certs/mysubdomain.com.cer"
SSLCertificateKeyFile "certs/private.key"
SSLCertificateChainFile "certs/server.csr"


<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>

<Directory "/usr/local/apache2/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

</VirtualHost>      

<Directory "/var/www/html">
    Options FollowSymLinks
    AllowOverride All
    Require all granted
    RewriteEngine   On 
    RewriteRule "^search$" "/search_res.html" [NC,L]
</Directory>

答案1

在你的nginx配置中你使用了内部重写,而不是重定向302,所以我猜你想要的是类似这样的东西:

RewriteEngine on
RewriteRule "^/search$" "/search_res.html" [NC,L]

在标签内<VirtualHost>

相关内容