0

如何更改以下网址

从:

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

至:

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

使用代码点火器。类别选项 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 方面更好我错了吗?

谢谢大家。

4

5 回答 5

2

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

于 2012-11-21T10:01:30.437 回答
1

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

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

$config['enable_query_strings'] = FALSE;

如果将其设置为 FALSE,则您不应像建议的那样使用查询字符串,但实际上使用默认的基于搜索引擎友好分段的 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

希望这可以帮助。

于 2012-11-21T12:21:53.163 回答
0

连同上述,

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


重写引擎开启

RewriteBase /你的站点文件夹

RewriteCond %{REQUEST_URI} ^system.*

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

重写规则 ^(.*)$ /index.php/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

重写规则 ^(.*)$ index.php/$1 [L]

选项 - 索引

DirectoryIndex index.php


于 2012-11-22T07:08:46.530 回答
0

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

从控制器中的该函数调用您的视图文件.......

于 2012-11-21T10:02:31.497 回答
0

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

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

- 并更改使您在 veiw 中的链接像这样。

<?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>
于 2015-08-01T10:45:58.623 回答