我对seo友好网址有疑问。我试着用.htaccess更改我的网址,当然我有问题。
我的联系页面标题中的链接如下:
index.php?=contact
所以我在.htaccess中写了这样的规则:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^contact index.php?=contact
然后当然改变了标题中的链接:
contact
现在当我点击标题上的联系人时,我得到了这样的好网址:
www.mywebsite.com/contact
但是网站总是把我带到主页(index.php)。
我做错了什么?
答案 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的空白。
根据我的信息,如果您将变量用作item
和value
,如下所示
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