0

我想以一种友好的方式将参数传递给我的 PHP 页面,所以这是我在 .htaccess 文件中写的内容

 RewriteRule ^confirm\/(([a-z0-9]).+)\/(([a-z0-9]).+)$ www.example.com/confirm.php?email=$1&order=$2

它运行良好,我可以使用 PHP 获取参数

explode('/', $_SERVER['REQUEST_URI'])

我有两个问题,

1-当我提交此页面时,我需要它直接转到confirmation.php,而不是提交到www.example.com/confirm/example@mail.com/12-HDYF/confirmaction.php !!! 这怎么能改变。

2-该页面最初运行良好,但是当我输入友好的 URL 时,所有 jquery 文件都会给我以下错误,这似乎真的不相关。

在此处输入图像描述

4

2 回答 2

0

更改您的 url 结构以避免原始和友好 URL 的 ^confirm,这应该使事情更容易调试(并避免循环)。这是一个猜测,因为您尚未发布失败的输入。

RewriteRule ^orderconf\/(([a-z0-9]).+)\/(([a-z0-9]).+)$ www.example.com/confirm.php?email=$1&order=$2
于 2013-02-04T15:09:41.357 回答
0

这是因为客户端(浏览器)看到了它正在浏览的页面www.example.com/confirm/example@mail.com/12-HDYF/,当它分析它并解析 html 时,它看到的内容类似于:

<script src="jquery.js"></script>
<form action="confirmation.php"... >

因此,浏览器会看到他当前所在页面的相对 url。因此,如果您告诉他jquery.js在与他当前所在的文件夹相同的文件夹中搜索文件,他将尝试从 下载www.example.com/confirm/example@mail.com/12-HDYF/jquery.js,并且在您提交表单时会发生同样的事情。

为避免这种情况,请使用绝对 URL(注意前导斜杠):

<script src="/jquery.js"></script>
<form action="/confirmation.php"... >

如果您的文件位于 的子文件夹中DocumentRoot,请将该子文件夹放在 URL 的开头。

于 2013-02-04T15:13:44.227 回答