不使用.htaccess文件更改URL查询字符串

时间:2013-12-23 12:38:26

标签: regex apache .htaccess mod-rewrite query-string

我有这个网址:http://example.org/product.php?course_id= $ x

我希望此网址更改为:http://example.org/Course-Name

这是我在.htaccess文件中的代码:

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^  404page.php
RewriteRule ^/([0-9]+)/([^/]+)/$ /product.php?course_id=$1 [L,R]

哪个不合作,请告诉我我的代码有什么问题?

1 个答案:

答案 0 :(得分:1)

您需要从规则中删除前导斜杠。试试这个规则:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+product\.php\?course_id=([^\s&]+) [NC]
RewriteRule ^ /%1? [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /product.php?course_id=$1 [L,QSA]