【问题标题】:$_SERVER['PHP_SELF'] shows different after writing .htaccess$_SERVER['PHP_SELF'] 写入 .htaccess 后显示不同
【发布时间】:2013-04-05 04:48:32
【问题描述】:

这是我们网站的实际网址

http://www.globalmedicalaware.com/gma-new/home.php?city=Chennai

我使用 .htaccess 以下代码重写了 url

Options +FollowSymLinks
RewriteEngine on
RewriteRule /city/(.*) home.php?city=$1

现在 url 重写为

http://www.globalmedicalaware.com/gma-new/home/city/Chennai

我在 column-right.php 和其他一些区域(如页脚、..etc、..this)中编写了代码

if($_SERVER['PHP_SELF']=='/gma-new/home.php') {

------------   some designs and action to display the column right for home.php only -----------

 } 

$_SERVER['PHP_SELF'] 的本地主机中正确显示/gma-new/home.php..

但在$_SERVER['PHP_SELF'] 的实时站点中显示city/Chennai..so 列正确的home.php 编码不起作用..

请帮帮我..

【问题讨论】:

标签: php .htaccess mod-rewrite url-rewriting url-redirection


【解决方案1】:

您可以在根目录下的 .htaccess 文件中尝试这样做:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !home\.php  [NC]
RewriteRule ^gma-new/home/city/([^/]+)/?  /gma-new/home.php?city=$1  [L,NC]

静默映射:
http://www.globalmedicalaware.com/gma-new/home/city/Chennai
http://www.globalmedicalaware.com/gma-new/home.php?city=Chennai

其中 Chennai 是一个动态字符串。

对于永久且可见的重定向,请将 [L,NC] 替换为 [R=301,L,NC]

【讨论】:

  • 但我做了这样的修改 Options +FollowSymlinks -MultiViews RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !home\.php [NC] RewriteRule ^ home/city/([^/]+) /? /gma-new/home.php?city=$1 [L,NC]
【解决方案2】:

尝试在http://php.net/manual/en/reserved.variables.server.php 中查看它,我认为您可以将$_SERVER['PHP_SELF']$_SERVER['REQUEST_URI'] 一起添加这样的字幕:

if ($_SERVER['REQUEST_URI'] == '/gma-new/home.php') {
    /*
    some designs and action to display the column right for home.php only
    */
}

【讨论】:

  • 嗨仆人..我也试过 $_SERVER['REQUEST_URI'].. 对于 $_SERVER['REQUEST_URI'] 它显示 gma-new/home/city/Chennai For $_SERVER[' PHP_SELF'] 它显示城市/Chennai 对于 $_SERVER['HTTP_HOST'] 它显示 www.globalmedicalaware.com..
  • 尝试将您的重写规则从RewriteRule /city/(.*) home.php?city=$1 更改为RewriteRule ^gma-new/home/city/([a-z0-9-_]+)/?$ /gma-new/home.php?city=$1 并尝试通过以任何方式暂时禁用它来检查问题是否在.htaccess 文件中,并检查您的问题是否仍然存在.
  • 嗨仆人..我用 $_SERVER['SCRIPT_NAME']..现在它工作正常..无论如何谢谢你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-03
  • 2016-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多