4

我正在使用 .htccess 文件来重写我的 URL。我在我的 .htaccess 文件中使用以下规则

Options +FollowSymlinks
RewriteEngine on 
RewriteBase /
RewriteRule ^product/([0-9]+)/([A-Za-z0-9+]+)$ /product.php?productid=$1&prodname=$2

重写工作正常。

但是,当我尝试通过相对路径访问任何其他页面时,在所有情况下,URL 都没有正确重定向。

就像下面的例子

<form action "something.php" method="post">
   <input type="text" name="1" />
   <input type="submit" value="submit" />
</form>

当我单击提交时,加载的页面http://mydomain/product/1/something/something.php不存在,因此引发 404 错误

我尝试在头部使用基本标记,但这会在我使用页面锚点和模式窗口时产生问题。它被重定向到索引页面。

如果需要更多详细信息,请告诉我。

我对此很陌生。那么,有人可以帮我解决这个问题吗?

提前致谢, Kartik

4

2 回答 2

3

这是一个 URL 解析问题。有关详细信息,请参阅所需的 mod_rewrite URL 信息

您可以使用绝对 URL 路径或绝对 URL:

<form action="/something.php" method="post">
<form action="http://example.com/something.php" method="post">

或者您更改基本 URL(请参阅BASEHTML 元素),以便从该 URL 而非当前 URL 解析每个相对 URL:

<base href="/">
<base href="http://example.com/">
于 2009-06-02T15:20:26.517 回答
0

解决这个问题的简短而简单的版本是绝对路径您的 URL - /something.php 在表单操作中,而不仅仅是“something.php”。

于 2009-06-02T15:26:00.733 回答