使用 mod_rewrite 将 index.html 重写到 cgi-bin 文件夹中

使用 mod_rewrite 将 index.html 重写到 cgi-bin 文件夹中

基本上php只能在我的主机的cgi-bin文件夹中执行。

在我的网络空间中,我的 index.html 文件路径如下:

www.example.edu/~用户名/index.html

当用户输入该内容时,我希望 mod_rewrite 能够:

www.example.edu/~用户名/cgi-bin/index.php

执行此操作的 mod_rewrite 代码是什么?我尝试了很多方法,但都没有用。我认为这可能也与 index.html 实际具有以下路径有关(这是我必须使用 unix 命令才能到达的路径):

www.example.edu/~用户名/WWW/index.html

但是,www.example.edu/~username/index.html 将我带到 WWW 文件夹中的 index.html

这是我的.htaccess 文件:

LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/index.html$ /cgi-bin/index.php [L]
</IfModule>

答案1

您是否要重定向或重写 URL?如果重定向,浏览器的 URL 栏地址将会改变。您可以使用以下方式执行此操作:

Redirect /index.html http://www.example.edu/~username/cgi-bin/index.php

如果您想重写它,以便用户看不到 PHP URL,例如:

RewriteEngine On
RewriteRule ^/index.html$ /cgi-bin/index.php [L]

查询字符串(例如?foo=bar)将被传递给 PHP 脚本。[L]表示“最后”——不处理任何后续规则。

编辑:

您一定可以使用吗mod_rewrite?尝试删除 < IfModule> 行,看看是否出现错误(如果模块无法加载或未加载,您将看到 500)。

并尝试:

RewriteRule ^/index.html$ /cgi-bin/index.php [L,R=302]

这将强制进行 302 重定向,更改您的浏览器 URL。这将向您显示该值mod_rewrite用于替换。

相关内容