用户友好的URL而不是查询字符串?

时间:2012-12-05 02:29:45

标签: php url

  

可能重复:
  using seo user friendly in php
  Custom routing in code ingniter

我正在使用CMS,我想使用用户友好的URL而不是查询字符串。

例如:

mysite.com/cat_1 => mysite.com/cat_1/itme_1

而不是

mysite.com/?cat=1 => mysite.com/?item=1

我该如何实现?任何标准方式?

我的想法是使用半动态页面并使用易于使用查询字符串的动态页面的用户友好URL来生成静态快照。

6 个答案:

答案 0 :(得分:2)

您希望使用.htaccess在内部重写您的网址,并将其适当地发送到您的应用程序。

这是一个特定的.htaccess示例,可以帮助您完成所需的工作:

RewriteEngine on
RewriteRule ^cat_([0-9]*) /?cat=$1 [N,QSA]
RewriteRule ^item_([0-9]*) /?item=$1 [N,QSA]

将上述内容放在根网络文件夹中名为.htaccess的文件中,您就可以开始使用了。

请注意,您可能必须在apache服务器中启用mod-rewrite(如果尚未启用)(大多数共享托管服务提供商已启用它)

答案 1 :(得分:2)

这是通过使用.htaccess来修改URL发送到客户端的方式来实现的。或者像其他人说的那样,美化URL。以下是一些文章链接,可帮助您开始实施此功能所需的mod_rewrite规则。

http://net.tutsplus.com/tutorials/other/using-htaccess-files-for-pretty-urls/

http://www.roscripts.com/Pretty_URLs_-_a_guide_to_URL_rewriting-168.html

答案 2 :(得分:1)

仅使用PHP无法实现此功能。您需要为HTTP服务器配置URL重写,这会将用户友好的URL转换为脚本可以理解的查询字符串。对于Apache,您应该查看mod_rewrite,通常可以通过.htaccess文件进行配置。

答案 3 :(得分:1)

您可以使用Codeigniter之类的框架: http://ellislab.com/codeigniter

并查看:http://ellislab.com/codeigniter/user-guide/general/urls.html

您需要激活mod_rewrite并创建文件.htaccess

.htaccess with Codeigniter:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?$1 [L]    
</IfModule>

然后你可以使用:

example.com/class/function/ID

我希望这有用。

问候。

答案 4 :(得分:1)

如何使用PHP的MVC模式?

http://www.tonymarston.net/php-mysql/model-view-controller.html http://oreilly.com/pub/a/php/archive/mvc-intro.html http://www.codeproject.com/Tips/401121/MVC-in-PHP

阿伦

答案 5 :(得分:1)

使用asp.net mvc你可以免费获得它;)但是我认为PHP有​​一个Web引擎(code igniter)也可以提供高级路由。此外,您可以使用某些Apache black magic

为自己设置角色