.htaccess没有将脏网址转换为干净的网址

时间:2017-02-12 14:52:29

标签: php .htaccess clean-urls

我有一个名为www.example.com/print?id=adder的网址
我希望它看起来像www.example.com/print/adder

我正在使用以下.htacces代码

RewriteEngine on

# redirect all requests except only POST
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.(?:php?)[\s?/] [NC]
RewriteRule ^ /%1%2 [R=302,L,NE]

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

RewriteRule ^print/([a-z]+) print.php?id=$1 [NC,L]

但是,我的网址是www.example.com/print?id=adder

我正在使用wamp 3.0.6(Latest Version)PHP 7.0,10& Apache 2.4.23。我为什么要面对这个问题。为什么代码没有工作?

1 个答案:

答案 0 :(得分:1)

要将您的网址重定向到更干净的版本,请将其置于上一个RewriteRule

之上
RewriteCond %{THE_REQUEST} /print/?(?:\.php)?\?id=([^\s&]+)
RewriteRule ^ /print/%1? [L,R]