我有一个主要网址:
http://localhost/alias
我有一个RewriteRule
Options -Multiviews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
并有这样的形式:
<form name="quick-search-form" action="test/action" method="POST">
每当我点击提交时,它每次都会继续放置一个级别(没有测试/操作,顺便说一下。如果它返回到index.php,则用于测试表单标记?url =)。
http://localhost/alias/id/
http://localhost/alias/test/action/id
http://localhost/alias/test/action/test/action/id
...
改为GET给了我(几次之后):
http://localhost/alias/test/action/test/action/test/action/test/action/id?quick-search-select=student
我希望它转到http://localhost/alias/test/action
(我的参数在帖子数据中)。看起来它将新的“测试/操作”表单操作附加到URL的“id”部分。请注意每个新提交的内容如何消失。
页面实际上是正确的位置,这是默认位置,因为没有测试控制器。但它一直把它放在URL的末尾。如果我放一个现有的网址
为什么它会从表单标记中追加?如果重要,请使用IIS。
答案 0 :(得分:1)
您在action
属性中使用了相对网址,因此实际路径是前置的。
您必须设置基本路径或使用/alias/test/action
之类的绝对网址。
要添加基本路径,您可以在html的头部添加:
<base href="/alias/">