php – 如何在.htaccess文件中定义变量并使用它?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 如何在.htaccess文件中定义变量并使用它?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经为我的网站定义了一个htaccess文件,具有以下@L_406_2@:
RewrITeEngine on
RewriteBase /

rewriterule ^bit_auth\/?(.*)$/cig/base3/auth/$1 [R=301,NC,L]
RewriteCond $1 !^(index\.PHP|images|robots\.txt|assets|themes|includes)
RewriteRule ^(.*)$/cig/base3/index.PHP/$1 [L]

我想保持我的网站根路径在这一个变量:

RewriteEngine on
RewriteBase /
Setenv BASE_PATH "/cig/base3"

RewriteRule ^bit_auth\/?(.*)$%{ENV:BASE_PATH}/auth/$1 [R=301,L]
RewriteCond $1 !^(index\.PHP|images|robots\.txt|assets|themes|includes)
RewriteRule ^(.*)$%{ENV:BASE_PATH}/index.PHP/$1 [L]

因为我可能需要稍后在更多的代码中使用BASE_PATH值,也可能会更改,我不想在htaccess文件中每次都进行搜索和替换.
但是当我使用上面的代码时,在htaccess文件%{ENV:BASE_PATH}中返回一个空值而不是预期的/ cig / base3,但是在使用以下命令调用PHP时:

<?PHP $sPEcialPath = getenv('BASE_PATH'); var_dump($specialPath)?>

它正在显示/ cig / base3的正确值.

我的代码有什么问题,我该如何解决

您不能使用SetEnv,因为它尚未处理.

你要找的是setenvif而不是SetEnv

所以你应该可以做一些类似的事情

SetEnvIf REQUEST_URI "^.*" base_path=/cig/base3

http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html#setenvif

脚本宝典总结

以上是脚本宝典为你收集整理的php – 如何在.htaccess文件中定义变量并使用它?全部内容,希望文章能够帮你解决php – 如何在.htaccess文件中定义变量并使用它?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。