我有一个登录页面和一个文本框。他们在文本框中输入一些内容,然后转到 /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>
。