基本上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
用于替换。