0

我对 .htaccess 文件没有很好的了解,无论如何我在某个地方找到了如下所示的代码:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
</IfModule>

我将表单值从 index.php 页面发布到 pagedata.php,如下所示:

<!-- index.php page -->
<form name="testform" id="testform" method="post" action="pagedata">
<input type="text" name="firstname">
<input type="text" name="age">
<input type="text" name="city">
</form>

然后数据显示很好......但现在我需要更改发布方法以获取方法。

如果我用get方法提交表单,那么URL如下, http ://example.com/pagedata.php?firstname=test&age=26&city=somecity

但我需要将上面的 URL 转换如下, http ://example.com/pagedata/test/26/somecity

这个怎么做..?请建议。

4

2 回答 2

0

使用 mod_rewrite 创建人性化的 URL

这可以帮助您转换,例如 www.site.ru/product.php?id=123 in www.site.ru/product/123 以下方式:

RewriteEngine on
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]
于 2013-10-16T10:52:51.177 回答
0

有一个附加规则:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(pagedata)\.php\?firstname=([^&]*)&age=([^&]*)&city=([^\s&]*) [NC]
RewriteRule ^ /%1/%2/%3/%4? [R=301,L]

RewriteRule ^(pagedata)/([^/]*)/([^/]*)/([^/]*)/?$ /$1.php?firstname=$2&age=$3&city=$4 [QSA,NC,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+?)/?$ /$1.php [L]
</IfModule>

推荐阅读:Apache mod_rewrite 简介

于 2013-10-16T09:07:02.030 回答