获取查询字符串的值时出错

时间:2017-03-02 18:21:23

标签: php .htaccess

我使用此.htaccess文件删除了项目文件夹中扩展名为.php的所有文件

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ $1.php?%1 [NC,L,QSA]

现在,例如,home / product.php成为家庭/产品。 但是我有一个问题,我有一个像这样的查询字符串的URL - “home / product_details.php?id = $ id”。我只能访问“home / product_details”。我希望它像“home / product_details / $ id”。

请问我该怎么做以及如何获得$ id的价值?

我通常会这样做:

$id = $_GET['id'];

我想我需要在.htaccess中调整一些内容,但我不知道。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用以下规则:

RewriteEngine on
#remove .php exten
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule (.*?)/?$ $1.php [L]
#rewrite /file/foobar to /file.php?id=foobar
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/(.+)/?$ /$1.php?id=$1 [L]