首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.htaccess重写URLs RewriteMap

.htaccess重写URLs RewriteMap
EN

Stack Overflow用户
提问于 2011-10-14 14:57:28
回答 2查看 1.8K关注 0票数 0

我有以下RewriteMap函数:

代码语言:javascript
复制
RewriteMap map_company txt:/var/www/vhost/domain.com/httpdocs/map_company.txt

我正在尝试将我的index.php?shop_id=1重写为/company-name/

所以我的map_company.txt文件包含:company-name 1

我似乎没办法让它起作用。这是我的htaccess文件:

代码语言:javascript
复制
# tried this
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?shop_id=${map_company:$1} [NC,L,QSA]

#and this
RewriteRule ^(\d+)/$ index.php?shop_id=${map_company:$1} [NC,L,QSA]

如果这样做,就会得到错误: File不存在: /var/www/vhosts/domain.com/httpdocs/company-name

有人有什么想法吗?我还需要确保它不会影响我的标准文件夹,如"css,js,图片“。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-14 14:58:48

您打开重写引擎了吗?需要定义RewriteEngine on。此外,请检查是否有此文件夹所需的AllowOverride值以使您能够执行此操作。

顺便说一句,我会考虑将尾斜杠设为可选的:

代码语言:javascript
复制
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?shop_id=${map_company:$1} [NC,L,QSA]
票数 1
EN

Stack Overflow用户

发布于 2017-02-23 14:24:31

看起来您不能在一个RewriteMap文件中声明一个.htaccess:

RewriteMap指令不能在节或.htaccess文件中使用。必须在服务器或虚拟主机上下文中声明映射。您可以在这些作用域中的RewriteRule和RewriteCond指令中使用映射(一旦创建)。你不能在那些范围内声明它。

https://httpd.apache.org/docs/2.4/rewrite/rewritemap.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7769506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档