.htaccess url在index.php中重写而不是profile.php

时间:2014-05-16 21:01:39

标签: php .htaccess url url-rewriting

所以我对url重写and.htaccess一般都是新手。 我想重写下面的网址

/rewrite/profile/karis/2

作为

/rewrite/profile.php?name=karis&id=2

所以我的.htaccess代码是

RewriteEngine on
RewriteRule ^profile profile.php

RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)$ profile.php?name=$1&id=$2
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)/$ profile.php?name=$1&id=$2

因此,当我将所有内容更改为index.php时,此功能完美无缺,但相同的代码不适用于profile.php

简单的PHP代码是

<?php
    if(isset($_GET['name']) && isset($_GET['id']))
    {
        echo "Hi ".$_GET['name'].", your id is ".$_GET['id'];   
    }
?>

任何想法为什么?

1 个答案:

答案 0 :(得分:1)

您的规则可以合并为一个,第一个也可以放错位置。在/rewrite/.htaccess

中试试这个
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteBase /rewrite/

RewriteRule ^([\w-]+)/([0-9]+)/?$ profile.php?name=$1&id=$2 [L,QSA]

RewriteRule ^profile/?$ profile.php [L]