我有一个PHP脚本来生成占位符图像,就像Placehold.it服务一样。我想要一个自定义的,以防止免费在线服务经常发生的延迟。
我已将此脚本包含在我个人前端样板文件夹 ./ assets / placeholder / 中。这就是为什么我需要一个适应占位符文件夹当前位置的.htaccess,因为它不一定是根目录。
该脚本采用以下参数: d (尺寸,例如400,250x100), bg (背景颜色),颜色(文字颜色)和文字。
理想情况下,网址将跟随./assets/placeholder/300x200/EAEAEA/333333?text=Test
,其中文本是常规的GET变量。
这是我刚才放在一起的.htaccess。如果文件位于根目录中,则它可以工作:
RewriteEngine on
RewriteRule ^#([^/]*)/([^/]*)/([^/]*)$ index.php?d=$1&bg=$2&color=$3 [QSA]
在一句话中,如果我将此文件(index.php)从根目录移动到/some/other/dir/index.php,我希望.htaccess文件仍然可以正常运行,而无需更改RewriteBase或其他任何内容。
我已经找到了this article on the matter,但我对这个问题的知识不足以使其适合这种情况。
提前致谢!
更新:我决定将.htaccess文件移动到我项目的根目录。唯一不起作用的是在最后添加/,但在?
之前## Turn mod_rewrite engine on ##
RewriteEngine On
# No trailing / ?
RewriteCond %{REQUEST_URI} !(.*)/$
# Add the slash.
RewriteRule assets/placeholder/(.*)$ assets/placeholder/$1/ [L,R=301]
# Map parameters to get vars
RewriteRule assets/placeholder/?([^/]*)/?([^/]*)/?([^/]*)/$ assets/placeholder/index.php?d=$1&bg=$2&color=$3 [QSA]
答案 0 :(得分:0)
如果您希望运行QSA标记,请将此网址.assets/placeholder/300x200/EAEAEA/333333&text=Test
更改为.assets/placeholder/300x200/EAEAEA/333333?text=Test
。
试试这段代码:
RewriteEngine on
RewriteRule ^assets/placeholder/([^/]*)/([^/]*)/([^/]*)$ index.php?d=$1&bg=$2&color=$3 [QSA]
尝试使用此代码重定向带有结束斜杠的网址:
RewriteCond %{REQUEST_URI} !^([^/]*)/$
RewriteRule assets/placeholder/(.*)$ assets/placeholder/$1/ [L,R=301]