使用URL重写的问题(相对路径不起作用)

时间:2009-06-02 11:27:19

标签: .htaccess mod-rewrite url-rewriting relative-path absolute-path

我正在使用.htccess文件来重写我的网址。我在.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错误

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

如果需要进一步的详细信息,请与我们联系。

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

先谢谢, 卡尔蒂克

2 个答案:

答案 0 :(得分:3)

这是一个解决网址问题。有关详细信息,请参阅mod_rewrite URL info required

您可以使用绝对网址路径或绝对网址:

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

或者您更改了基本网址(请参阅BASE HTML element),以便从该网址解析每个相对网址,而不是当前网址:

<base href="/">
<base href="http://example.com/">

答案 1 :(得分:0)

解决这个问题的简单易用版本是绝对路径你的网址 - 表单操作中的/something.php,而不仅仅是'something.php'。