htaccess RewriteRule同时加载两页

时间:2018-02-17 08:27:55

标签: php .htaccess

我有这个链接并扩展了它的一部分,

user.php?u=Adam

user.php?u=Adam&p=posts

我用这个重写

清理它
RewriteEngine ON
RewriteRule ^user/(\w+)/(\w+)$ ./user.php?name=$1&p=$2 [NC,L]
RewriteRule ^user/(\w+)$ ./user.php?name=$1 [NC,L]

这些链接现在正在运作

user/Adam

user/Adam/posts

问题是每当我加载user/Adam/posts它加载user/Adam时,它首先显示两个页面user/Adam/posts然后向下滚动显示user/Adam。 因为user/Adamuser/Adam/posts的一部分。

但该怎么做我把它做成一个而不是另一个。

1 个答案:

答案 0 :(得分:1)

我认为它不是来自您的重写规则,而是来自您的PHP脚本。

浏览<dependency> <!-- Only used locally --> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.42</version> <!-- v5.x.x is for production, v6.x.x EAP X DevAPI --> </dependency> <dependency> <groupId>com.google.cloud.sql</groupId> <!-- If using MySQL 6.x driver, use mysql-socket-factory-connector-j-6 instead --> <artifactId>mysql-socket-factory</artifactId> <version>1.0.5</version> </dependency>

/user/Adam/posts

因此,在PHP脚本中,您应该使用:

var_dump($_GET) ; // array(2) { ["name"]=> string(4) "Adam" ["p"]=> string(5) "posts" } 

if (isset($_GET['name']) && isset($_GET['p'])) {
    // do something
}
elseif (isset($_GET['name'])) {
    // do something else 
}