访问htaccess重写的URL没有查询参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了访问htaccess重写的URL没有查询参数相关的知识,希望对你有一定的参考价值。
我已经将php文件的URL重写为:
RewriteRule ^psu/(.*)/(.*)/(.*)/(.*) _psu.php?id=$1&mb=$2&cpu=$3&name=$4 [L]
这使得页面_psu.php仅可访问:
psu/path/path/path/path
任何其他网址,如:
psu/path/path/path/
psu/path/path/
psu/path/
psu
给出404 Not Found错误。如何重写URL - psu/path/path/path/path
保持上述URL可访问?
答案
试试这个:
RewriteEngine On
RewriteBase /
RewriteRule ^psu(?:/([^/]*)(?:/([^/]*)(?:/([^/]*)(?:/([^/]*)/?)?)?)?)?$ _psu.php?id=$1&mb=$2&cpu=$3&name=$4 [L]
在_psu.php
<?
$id = $_GET["id"];
$mb = $_GET["mb"];
$cpu = $_GET["cpu"];
$name = $_GET["name"];
echo "id: $id<br>
mb: $mb<br>
cpu: $cpu<br>
name: $name";
?>
检查可访问的URL:
/psu/1/2/3/4
/psu/1/2/3
/psu/1/2
/psu/1
/psu
满足所有提到的退休。
另一答案
要在psu
之后处理动态长度路径,请在站点根目录.htaccess中使用此规则:
AcceptPathInfo on
RewriteEngine On
RewriteRule ^psu(/.*)?$ _psu.php$1 [L,NC]
在php
内部的_psu.php
代码中使用:
$_SERVER["PATH_INFO"]
获取路径信息。您可以通过/
将其拆分以获取路径组件列表。
另一答案
您可以使用:
RewriteRule ^psu(?:/([^/]*)(?:/([^/]*)(?:/([^/]*)(?:/([^/]*)/?)?)?)?)?$ _psu.php?id=$1&mb=$2&cpu=$3&name=$4 [L]
以上是关于访问htaccess重写的URL没有查询参数的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess使用URL中的#item重写站点以进行直接文件访问