0
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /me/profile.php?username=$1 [QSA,L]

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /me/index.php?page=$1 [QSA,L]

索引页面的第二次重写不起作用,但是,配置文件页面的第一次重写有效。

这是我在 index.php 中使用的:

    if(isset($_GET['page']) === true && empty($_GET['page']) === false){

        if($_GET['page'] == 'Home'){
?>
<div id = "contents">
Works!
</div>
<?php 
}else{
<div id = "contents">
Error page!
</div>
}
}
?>

那么索引页面有什么问题。我怎样才能为他们两个重写?

4

1 回答 1

1

问题是您捕获了 URL 中的任何内容并重定向到 profile.php 页面,不允许它到达 index.php 行。尝试这样的事情:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^/profile/(.*)$ /me/profile.php?username=$1 [QSA,L]
RewriteRule ^(.*)$ /me/index.php?page=$1 [QSA,L]

这样,个人资料页面可以与索引页面区分开来并正确重写。例如。Domain.com/profile/jimjimmy1995 用于用户页面, domain.com/about 用于其他页面。

于 2013-02-23T08:35:54.813 回答