[英]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]
记得:
要安装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.