0

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

我的联系页面标题中的链接是这样的:

index.php?=contact

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

Options +FollowSymLinks

RewriteEngine On
RewriteRule ^contact index.php?=contact

当然,我将标题中的链接更改为如下所示:

contact

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

www.mywebsite.com/contact

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

我做错了什么?

4

2 回答 2

0

我说清楚了,现在开始工作了。我只是更改了链接,然后将page. 静态链接现在对我有用,但是如何写入动态链接。例如,我的链接是这样的:

<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
于 2013-06-29T19:26:48.510 回答
0

在这里尝试一下,看看它是如何工作的。你有一个=尝试index.php?contact删除它。

如果您想让所有链接 URL 友好,而不仅仅是contact您可以这样做。

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

编辑:

你的数组是空白的,因为你没有向它传递任何东西。我看不到您是如何签入文件的,但您index.php通常将参数传递为. 您没有使用它,因此您的数组在 mod_rewrite 中是空白的。item=valueindex.php?page=contactitemindex.php=contact

根据我掌握的信息,如果您将变量用作下面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 设置。

于 2013-06-27T22:44:23.857 回答