带有get变量的URL路由

时间:2015-06-01 07:49:27

标签: php .htaccess url url-rewriting

我想缩短我的网址:

localhost/group.php?(GET_REQUEST_VARIABLE_HERE) 

localhost/(GET_REQUEST_VARIABLE-VALUE)

基本上就是这样:

localhost/group.php?id=7 TO localhost/7

我正在使用PHP,我猜我需要一个htaccess文件。

3 个答案:

答案 0 :(得分:0)

这个问题在本网站上被提出了很多。例如。 Rewrite all queries to not need the .php extension using a mod_rewrite RewriteRule

但要回答你的问题。如果您使用Apache Web服务器是正确的,则需要.htaccess文件。这可能会充分发挥作用:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^ index.php [L]
</IfModule>

这会将您的非实际文件的所有请求重新路由到index.php文件。当然,这将要求您在索引文件中实现一些路由逻辑,以确定您真正想要访问的页面,但这就是您实现漂亮网址的方式。

答案 1 :(得分:0)

此规则应该适用于root .htaccess:

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ group.php?id=$1 [L,QSA]

答案 2 :(得分:0)

这个问题已被回答数百次,我已经建议您在评论中阅读更多相关信息。

顺便说一句.htaccess应该没问题

RewriteEngine on

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

RewriteCond $1 
RewriteRule ^(.*)$ group.php?id=$1 [L,QSA] 

请记住:

  1. 检查你是否在apache中启用了mod_rewrite以使.htaccess工作。
  2. 安装模块后重启apache
  3. 要安装apache重写模块,请使用命令a2enmod rewrite。 要重新启动apache,请使用sudo service apache2 restart

    请先阅读http://www.workingwith.me.uk/articles/scripting/mod_rewrite首先,您不希望配置htaccess错误是Web开发人员生活中最糟糕的事情之一:O :( ..