我刚刚开始在我正在开发的网站上使用.htaccess。一切正常,但是当我尝试访问位于索引上的user.php文件时,我不断得到这个网址:
在其他所有文件和地点上,它的效果非常好。
这是我根据URL调用不同页面的功能:
public function lifeline() {
global $templatePath;
if ( isset($_GET['url']) && $_GET['url'] !== 'user' ) {
$url = $_GET['url'];
$result = mysql_query("SELECT * FROM posts WHERE url='$url' ");
if ( !mysql_num_rows($result) ) {
if ( file_exists($templatePath.'404.php') ) {
include_once($templatePath.'404.php');
} else {
include_once('404.php');
}
}
while($row = mysql_fetch_assoc($result)){
if ( $row['type'] === 'post' ) {
include_once($templatePath.'post.php');
} elseif ( $row['type'] === 'page' ) {
include_once($templatePath.'page.php');
}
}
} elseif ($_GET['url'] === 'user') {
include_once($templatePath.'user.php');
} else {
include_once($templatePath.'index.php');
}
}
这是我的.htaccess文件。
Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?url=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?url=$1
RewriteRule ^(.+)(\s|%20)(.+)$ /$1-$3 [R=301,QSA,L,NE]
ErrorDocument 404 /404.php
我希望我的网址如下:
没有/?url = user
抱歉,如果我听起来很吵闹。 :(
答案 0 :(得分:1)
如果不仔细检查,.htaccess中的最后一个RewriteRule
包含[R=301]
,这使其成为唯一能够“添加”(即重定向到您)/?user=x
的规则。我会仔细研究最后一条规则。