从URL中删除参数

时间:2014-07-11 08:09:19

标签: regex apache .htaccess url mod-rewrite

我的localhost上有这样的URL:

http://localhost/mysite/index.php?id=8

我想从网址中删除index.php?id=并将其显示如下:

http://localhost/mysite/8

或者:

http://localhost/mysite/about

用一些字符代替整数8。

2 个答案:

答案 0 :(得分:0)

你误解了

您必须在代码中的任何位置使用短网址mysite/8),并让.htaccess将这些虚假网址重定向到真实网址(mysite/index.php?id=8)。

无法希望.htaccess能够神奇地美化您的网址。


话虽如此,您正在寻找的.htaccess是:

RewriteEngine On
RewriteBase /mysite

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?id=$1 [L]

答案 1 :(得分:0)

您可以在/mysite/.htaccess

中使用此规则
RewriteEngine On
RewriteBase /mysite/

RewriteCond %{THE_REQUEST} /index\.php\?id=([0-9]+) [NC]
RewriteRule ^ %1? [R=302,L]

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