codeigniter - 更改网址以获得更好的SEO

时间:2012-11-21 09:57:35

标签: codeigniter seo codeigniter-routing

如何更改以下网址

从:

http://localhost/autoquest/index.php/autos?category=camry

为:

http://localhost/autoquest/index.php/autos/camry

使用codeigniter。类别选项camry来自选择选项,例如:

<select id="category" name="category" onchange="this.form.submit()">
    <option value="camry">car 1</option>
    <option value="octavia">car 2</option>
    <option value="volvo">car 3</option>
</select>

我认为第二个网址在SEO方面更好我错了吗?

谢谢大家。

5 个答案:

答案 0 :(得分:2)

你看过config/routes.php了吗?您可以在那里定义重写规则。如果您将配置参数index_page(在config/config.php中)设置为空,则也可以删除index.php。但是您应该阅读有关网址的文档:http://ellislab.com/codeigniter/user_guide/general/urls.html

答案 1 :(得分:1)

您是否在Codeigniter配置中启用了查询字符串?

这是第155行附近的application / config / config.php:

$config['enable_query_strings'] = FALSE;

如果设置为FALSE,则您不应该像您建议的那样使用查询字符串,但实际上使用默认的搜索引擎友好的基于URL的URL。如用户指南中所述。所以你的URL自动是

http://localhost/autoquest/index.php/autos/camry

而不是

http://localhost/autoquest/index.php/autos?category=camry

如需了解更多信息,请在此处查看精彩的用户指南:http://ellislab.com/codeigniter/user_guide/general/urls.html

希望这有帮助。

答案 2 :(得分:0)

你可以这样做........当你提交这个表格时调用一个javascript函数。将您的选项值作为参数发送给该函数。在该函数中使用window.href函数分配你的base_url +'/'+ controller_name +'/'+ function_name_in_controller +'/'+ option_value .....。

从控制器中的该功能调用您的视图文件.......

答案 3 :(得分:0)

除此之外,

您可以通过在root中的.htaccess中编写以下代码来删除index.php。


RewriteEngine On

RewriteBase / yoursitefolder

RewriteCond%{REQUEST_URI} ^ system。*

RewriteCond $ 1!^(index.php | images | js | css | robots.txt)

RewriteRule ^(。*)$ /index.php/$1 [L]

RewriteCond%{REQUEST_FILENAME}!-f

RewriteCond%{REQUEST_FILENAME}!-d

RewriteRule ^(。*)$ index.php / $ 1 [L]

选项 - 索引

DirectoryIndex index.php


答案 4 :(得分:0)

- 试试这个 - 在routes.php中更改

$route['autos'] = 'YourController/yourMethod/$1";

- 并且改变你的链接就像这样。

<?php echo base_url().'autos/'.$parameter;?>

- 没有index.php的url对于SEO更好,你可以通过在.htaccess文件中添加以下代码来删除它,该文件位于根目录中,如果不存在则创建它并将以下代码粘贴到其中。

<ifModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond $1 !^(index\.php|images|robots\.txt)
    RewriteRule ^(.*)$ index.php/$1 [L]
</ifModule>