首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.htaccess重写url get?

在Apache服务器上,.htaccess文件用于配置URL重写规则,以实现URL的伪静态化或自定义URL格式。使用.htaccess文件重写URL中的GET参数可以通过mod_rewrite模块来实现。以下是一个基本的示例,展示如何使用.htaccess文件重写URL中的GET参数。

假设你有一个URL如下:

代码语言:javascript
复制
http://example.com/page.php?id=123&name=John

你希望将其重写为:

代码语言:javascript
复制
http://example.com/page/123/John

以下是实现这一目标的.htaccess文件内容:

代码语言:javascript
复制
RewriteEngine On

# 重写规则
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^page/([0-9]+)/([a-zA-Z0-9_-]+)/?$ page.php?id=$1&name=$2 [L,QSA]

解释:

  1. RewriteEngine On:启用URL重写引擎。
  2. RewriteCond %{REQUEST_FILENAME} !-f:如果请求的文件不存在,则继续处理重写规则。
  3. RewriteCond %{REQUEST_FILENAME} !-d:如果请求的目录不存在,则继续处理重写规则。
  4. RewriteRule ^page/([0-9]+)/([a-zA-Z0-9_-]+)/?page.php?id=page.php?id=1&name=$2 [L,QSA]
    • ^page/([0-9]+)/([a-zA-Z0-9_-]+)/?$:匹配URL模式,其中page/是固定的前缀,([0-9]+)匹配一个或多个数字(ID),([a-zA-Z0-9_-]+)匹配字母、数字、下划线和连字符(名称)。
    • page.php?id=$1&name=$2:将匹配的部分重写为page.php,并将捕获的ID和名称作为GET参数传递。
    • [L,QSA]
      • L:表示这是最后一条规则,如果匹配成功,则不再继续处理后续规则。
      • QSA:表示保留查询字符串附加到重写后的URL。

注意事项:

  1. 权限设置:确保.htaccess文件具有写权限,并且Apache服务器配置允许使用.htaccess文件进行重写。
  2. mod_rewrite模块:确保mod_rewrite模块已启用。可以通过以下命令启用: sudo a2enmod rewrite sudo systemctl restart apache2

通过以上步骤,你可以使用.htaccess文件重写URL中的GET参数,从而实现更友好的URL格式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券