You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.htaccess Rewrite规则无法修改URL,本地环境URL美化求助

实现URL重写的步骤与规则

前提准备

  • 开启Apache的mod_rewrite模块:
    打开Apache配置文件httpd.conf(XAMPP/WAMP路径为apache/conf/httpd.conf),找到#LoadModule rewrite_module modules/mod_rewrite.so,删除行首的#,保存后重启Apache服务。
  • 允许目录使用.htaccess:
    在httpd.conf中找到对应网站根目录的<Directory>块,将AllowOverride None修改为AllowOverride All,重启Apache生效。

编写.htaccess规则

根据你的文件结构,分两种情况处理:

情况1:.htaccess放在advertisements子目录下

若你的文件结构是网站根目录/advertisements/views/user-list.php,直接在advertisements文件夹内创建.htaccess文件,写入以下规则:

RewriteEngine On
# 排除真实存在的文件和目录
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 将advertisements/user-list转发到advertisements/views/user-list.php
RewriteRule ^([^/]+)$ views/$1.php [L]

情况2:.htaccess放在网站根目录下

若把.htaccess放在网站根目录(比如XAMPP的htdocs),规则需要加上advertisements前缀:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^advertisements/([^/]+)$ advertisements/views/$1.php [L]

规则运行机制说明

  • RewriteEngine On:启用Apache的URL重写引擎,是所有重写规则的基础。
  • RewriteCond %{REQUEST_FILENAME} !-f:判断请求路径不是真实存在的文件,避免重写图片、CSS等静态资源的访问路径。
  • RewriteCond %{REQUEST_FILENAME} !-d:判断请求路径不是真实存在的目录,防止干扰现有文件夹的正常访问。
  • RewriteRule:核心匹配规则,^([^/]+)$匹配URL中一段不含斜杠的字符串(比如user-list),$1指代匹配到的内容,最终将请求转发到views/$1.php。[L]表示匹配到该规则后停止后续规则处理。

注意事项

  • 确保.htaccess文件名正确,Windows系统下创建时需避免自动添加.txt后缀(可通过编辑器直接保存为.htaccess)。
  • 本地环境的网站根目录需与文件结构对应,比如XAMPP默认根目录是htdocs,需将advertisements文件夹放在htdocs下。

内容的提问来源于stack exchange,提问作者kur0bane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 19:52:23