php - 在 PHP 中使用干净的 url 重定向 url
问题描述
我正在构建一个简单的电子商务应用程序,我想让我的网址“干净”。好的,我已经做了一些事情来到达那里,但我现在很困惑:/
我目前的情况:
www.example.com/products
在这个页面上,我有一些产品的 ID、标题和所有其他显示的东西
当我点击产品的标题时,我提交了一个带有 ID 和名称的表单,我'd like to goto
www.example.com/detail/name_of_product In detail.php
<form name="prodDetail" action="detail" method="post">
我通过 $_POST 获得产品 ID,因为它是通过提交表单进入的。然后我可以根据需要做所有的事情来显示产品详细信息。
到目前为止,一切都很好。
但是如果我这样做,<form name="prodDetail" action="detail/'.$prodName.'"method="post">
我只得到一个空白页面:/ 如果我用'替换它,请注意' / ' ?' 然后它可以工作,但我有一个丑陋的 url 和一个?在里面:/
所以我认为我的 htaccess 文件不允许我这样做:/
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?action=$1&1id=$2&2id=3$ [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?action=$1&2id=$2 [L,QSA]
RewriteRule ^([^/]+)/?$ index.php?action=$1 [L,QSA]
我正在使用“switcher.php”这个文件捕获“动作”并使用函数将我切换到正确的页面。我在我的 index.php 中调用这个脚本。
$action = isset($_GET['action']) ? $_GET['action'] : "default";
switch ($action){
case 'product';
showproduct();
break;
default:
defaultpage() //home.php is default
}
因此,如果我提交一个“详细信息”表单,切换器会将我指向 detail.php。
对不起我的英语不好
希望有人可以帮助我:)
解决方案
推荐阅读
- ms-access - DLookup 文件路径源
- java - 未解决的要求:导入包:bndtools/osgi 中的 org.apache.commons.codec.language
- ruby-on-rails - 即使新记录无效,Rails has_one 构建关联也会删除现有记录
- c# - NUnit 测试项目的 .NET Core 容器定义
- rust - 临时值在自定义结构中的寿命不够长
- delphi - 使用 TFDTable 对网格中的数据进行排序
- asp.net - Azure WebApp 的起点
- dart - 如何修复 Flutter 下拉按钮溢出问题?
- php - 当我检查输入时,它总是给出否定的响应,这是为什么呢?
- node.js - 查询范围内 npm 包的特定版本信息