繁体   English   中英

使用get变量的URL路由

[英]URL Routing with get variables

我想从以下位置缩短我的网址:

localhost/group.php?(GET_REQUEST_VARIABLE_HERE) 

localhost/(GET_REQUEST_VARIABLE-VALUE)

本质上是这样的:

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

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

这个问题已经在这个网站上问了很多。 例如, 使用mod_rewrite RewriteRule将所有查询重写为不需要.php扩展名

但是要回答你的问题。 如果您使用的是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文件。 当然,这将需要您在索引文件中实现一些路由逻辑,以确定您真正要访问的页面,但这就是获得漂亮的url的方式。

此规则应在根.htaccess中为您工作:

RewriteEngine on
RewriteBase /

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

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

顺便说一句,这个.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

要安装apache重写模块,请使用命令a2enmod rewrite 要重新启动apache,请使用sudo service apache2 restart

并请先阅读http://www.workingwith.me.uk/articles/scripting/mod_rewrite,如果您不想配置htaccess错误,则是网络开发人员生活中最糟糕的事情之一:O :( ..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM