虚荣网址ID问题

时间:2013-05-28 09:01:33

标签: php vanity-url

我正在尝试做虚荣网址。

我希望这个http://mydomain.com/series/profile.php?profile_id=751130015变成这样的

http://mydomain.com/series/751130015

我尝试在目录上创建一个新文件'.htaccess'并添加以下代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /profile.php?profile_id=$1

然而,当我试图接受

时,我仍然会收到错误

http://mydomain.com/series/751130015

我错过了什么吗?

我得到的错误是:

  

找不到对象!

     

在此服务器上找不到请求的URL。如果您手动输入了URL,请检查拼写,然后重试。

     

如果您认为这是服务器错误,请与网站管理员联系。

     

错误404

1 个答案:

答案 0 :(得分:0)

RewriteEngine On
RewriteRule ^series/([0-9]+)$ /series/profile.php?profile_id=$1 [L]

说明:

任何开始(^) “系列”然后破折号(/),然后是数字(([0 -9] +)) - 还记住这些数字作为第一个变量“$ 1”,最终结尾($)将被重定向到/series/profile.php?profile_id= $ 1

所以http://mydomain.com/series/751130015

将重定向到http://mydomain.com/series/profile.php?profile_id=751130015

更新:相反:

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^/series/profile\.php$
RewriteCond %{QUERY_STRING} ^profile_id=([0-9]*)$
RewriteRule ^(.*)$ http://mydomain.com/series/%1? [R=301,L]

解释(第一个条件)如果调用/series/profile.php时带有(第二个条件)参数,以“profile_id =”开头,然后是数字,那么就像这样重写:转到http://mydomain.com/series/并添加无论最后的数字是什么,然后停在那里(?) - 我们故意停在那里以避免追加到重写结果的query_string。通知访问者这是永久REDIRECT状态301.然后终止htaccess执行(L)

所以http://mydomain.com/series/profile.php?profile_id=751130015会重定向(R = 301 - 永久重定向)到http://mydomain.com/series/751130015

(您可以使用R = 302进行临时重定向)