我正在尝试做虚荣网址。
我希望这个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
答案 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进行临时重定向)