使用参数

时间:2015-06-15 13:52:37

标签: php .htaccess url-rewriting

我最近在000webhost.com上托管了我的网站,一旦我托管了它,我就登录查看它的工作情况。当我点击包含三个参数(如url,id和ref)的消息或配置文件等链接时,页面会被重定向,但不会加载配置文件/消息页面。

例如,链接是:example.com/profile/Sagar-Chauhan/123456/p。点击它,它会被重定向,但网址显示这样的东西 www.example.com/?url=sagar-chauhan&id=123456&ref=p而不是www.example.com/profile/Sagar-Chauhan/1234656/p

以下是我的.htaccess代码。

 Options +FollowSymlinks
 Options -Indexes
 RewriteEngine On
 RewriteBase /
 ErrorDocument 404 /404.php

 RewriteRule ^profile/([^/]*)/([^/]*)/([^/]*)$ profile.php?url=$1&id=$2&ref=$3 [L]
 RewriteRule ^profile/([^/]*)/([^/]*)/([^/]*)/$ profile.php?url=$1&id=$2&ref=$3 [L]


 RewriteCond %{HTTP_HOST} ^example.com$
 RewriteRule ^(.*)$ "http\:\/\/www\.example\.com\/$1" [R=301,L]

1 个答案:

答案 0 :(得分:0)

指令的顺序不正确。请改用以下方式使用它:

Options +FollowSymlinks
Options -Indexes

ErrorDocument 404 /404.php

RewriteEngine On
RewriteBase /

# Add "www."
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

# Rewrite profile/x/x/x to profile.php
RewriteRule ^profile/([^/]*)/([^/]*)/([^/]*)/?$ profile.php?url=$1&id=$2&ref=$3 [L]