如何在mod_rewrite中将获取方法参数更改为段


How to change get method parameter into segments in mod_rewrite?

我有这样的网址。

http://localhost:8080/computer/products.php?cid=3

我必须通过以下部分进行修改。

http://localhost:8080/computer/products/3

有没有可能的方法可以在 mod 重写中转换为片段。

您可以在DOCUMENT_ROOT/.htaccess文件中使用以下代码:

RewriteEngine On
RewriteBase /
RewriteRule ^(['w-]+)/(['w-]+)/('d+)/?$ /$1/$2.php?cid=$3 [L,QSA]

在 .htaccess 文件中试试这个:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^computer/('w+)/('w+)$ computer/$1.php?cid=$2 [L,PT]

您可以使用正则表达式反向引用从原始 URL 传输任何部分。

在您的情况下:

^computer/ ('w+) /         ('w+) $
           ⇓               ⇓
computer/  $1    .php?cid= $2

在具体情况下:

computer/ products /         3
          ⇓                  ⇓
computer/ products .php?cid= 3

如果这不起作用,请检查是否启用了 .htaccess 文件:

AllowOverride All

或者,您可以将重写代码放在 apache 配置文件中。

您可以在.htaccess中尝试使用这个简单的代码

重写引擎开启RewriteRule ^/computer/products/([0-9]+)$/computer/products.php?cid=$1

希望我能帮助你。马可