【问题标题】:How can I use mod_rewrite to redirect to a "key word" folder如何使用 mod_rewrite 重定向到“关键字”文件夹
【发布时间】:2012-08-17 20:00:56
【问题描述】:

标题很难解释。

我想做以下两个网址

http://www.example.com/apps/web/admin/图片/pic.jpg http://www.example.com/apps/web/blog/comment/图片/pic.jpg

都重定向到

http://www.example.com/apps/view/图片/pic.jpg

我将“.htaccess”文件放在 /apps/ 文件夹中。

无论当前网址是什么,
只要当前 URL 包含“images/”,
全部重定向到这个文件夹

http://www.example.com/apps/view/图片

这是我的代码,但它不能工作

重写引擎开启

重写规则 ^(.*)/images/(.*)$ views/images/$2

那么,如何设置 .htaccess 文件?

【问题讨论】:

  • 对不起,我忘记粘贴我的代码了,我会将我的代码添加到问题中。
  • 我刚刚开始学习 mod_rewrite 的技能。请原谅
  • 别担心,你的编辑很好:)

标签: apache mod-rewrite


【解决方案1】:

试试:

RewriteEngine On
RewriteBase /apps/
RewriteCond %{REQUEST_URI} !/view/images/
RewriteRule images/(.*)$ view/images/$1 [L]

如果你真的想重定向浏览器,比如更改地址栏中的URL,请将括号中的L更改为L,R=301

【讨论】:

  • 但是现在我还有一个问题....因为有时候我不能使用Server工作,所以root不是example.com,可能喜欢localhost/~user/example/apps。那么,我该如何调整它以使其正常工作?如果我删除“RewriteBase /apps/”,它会显示“内部服务器错误”
  • @AzureChen 将 base 更改为 ~user/example/apps 并将规则放在该目录中。
  • 我已经在本地计算机上尝试过,但如果我使用“RewriteBase /~user/example/public_html/apps/”,它仍然会显示“内部服务器错误”。如果我使用“RewriteBase /apps/”,它将显示“未找到请求的 URL /apps/view/images/pic.jpg”:(
  • 谢谢!你真的有耐心!还有我想知道为什么我没有设置RewriteCond会显示“Internal Server Error”?
  • @azurechen 因为规则循环,重写引擎不断重复,直到 URI 停止变化
猜你喜欢
  • 2017-03-09
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
  • 2017-03-08
  • 2017-04-18
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
相关资源
最近更新 更多