SEO友好.htaccess总是引导我到主页

时间:2013-06-27 14:32:19

标签: php .htaccess seo

我对seo友好网址有疑问。我试着用.htaccess更改我的网址,当然我有问题。

我的联系页面标题中的链接如下:

index.php?=contact

所以我在.htaccess中写了这样的规则:

Options +FollowSymLinks

RewriteEngine On
RewriteRule ^contact index.php?=contact

然后当然改变了标题中的链接:

contact

现在当我点击标题上的联系人时,我得到了这样的好网址:

www.mywebsite.com/contact

但是网站总是把我带到主页(index.php)。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

这里试一试,看看它是如何工作的。 您=之间的index.php?contact尝试删除它。

如果您希望将所有链接设为网址,而不只是contact,则可以执行此操作。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+) index.php?$1&%{QUERY_STRING} [L] 

修改

您的数组是空白的,因为您没有传递任何内容。我看不到您如何检入index.php文件,但通常会将参数传递为item=value,如index.php?page=contact。你没有使用item给它index.php=contact所以你的数组是mod_rewrite的空白。

根据我的信息,如果您将变量用作itemvalue,如下所示

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?$1=$1&%{QUERY_STRING} [L]

转到http://www.yoursite.com/contact

您将从PHP $_GET

获得此信息
Array ( [contact] => contact )

但如果你这样做

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?page=$1&%{QUERY_STRING} [L]

然后转到http://www.yoursite.com/contact

然后你会从PHP $_GET

得到这个
Array ( [page] => contact )

然后你检查它

if($_GET["page"] == "contact"){
//do whatever 
}else{
 //show homepage
}

我能看到的.htaccess规则没有任何问题。这是你的PHP设置。

答案 1 :(得分:0)

我说清楚了,现在正在工作。我刚刚更改了链接,并放了page。静态链接现在为我工作,但如何写入dinamic链接。例如,我的链接是这样的:

<a href=index.php?page=kategorije/$row[id_cat]/$newname>{$row['name']}</a>

$ newname给出“ - ”而不是单词之间的空格。

这种链接给了我这个网址:

www.mywebsite.com/index.php?page=category/3/The-Name-Of-Shop

如何写.htaccess来获取:

www.mywebsite.com/The-Name-Of-Shop