我正在尝试在 .htaccess
中使用 RewriteRules使用相对路径,但 Apache 似乎想输出 物理路径而不是 服务器 每当我尝试输出相对路径时的路径。绝对和服务器根路径工作正常。例如:
RewriteEngine On
# this works fine, 127.0.0.1/ab redirects to 127.0.0.1/cd
RewriteRule ^ab$ /cd [R]
# this doesn't work... 127.0.0.1/wx redirects to 127.0.0.1/C:/path/to/files/yz
RewriteRule ^wx$ yz [R]
添加一个“
RewriteBase /
”可以解决问题,但是每个.htaccess
都添加路径很繁琐,这使得更改目录结构变得更加困难。是否有原因 RewriteBase 默认为当前 物理路径而不是当前 URI 小路?
最佳答案
对于那些碰巧从谷歌来到这里的人(像我一样),简短的 list :
RewriteBase /
(或任何其他值 - 声明很重要)[R]
、 [R=30x]
等) - 确保新 URI 以 /
开头并包含相对于您的域根的路径 [R=301]
)这就是拯救我的一天,也许它也会拯救你的一天。
关于apache - 为什么 Apache 的 RewriteRule 会显示本地路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1162871/