【问题标题】:htaccess redirection is not working as expectedhtaccess 重定向未按预期工作
【发布时间】:2013-05-02 17:46:08
【问题描述】:

我不太了解如何编写用于重定向的 htaccess 代码。

现在我的网址是:http://example.com/beta/?selector=login。 上面的链接将打开一个登录页面。

此处提供登录页面:page/login.php

我在 index.php 中写了以下代码:

<?php
include ("page/header.php");
if(isset($_GET['selector'])){
      if($_GET['selector']=="feed") { include ("feeds/index.php"); }
      else { include ("page/".$_GET['selector'].".php"); }
}
else{
    include ("page/home.php");
}
include ("page/header.php");
?>

现在我想要的不是上面的链接是http://example.com/beta/login

我在 htaccess 文件中写了以下代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /beta/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /beta/index.php [L]
</IfModule>

但它不起作用。

【问题讨论】:

  • 你在apache中启用模块了吗?
  • 是的,我启用了模块 :)
  • 你的htaccess文件放在什么目录下?
  • beta/.htaccess beta/index.php beta/page/login.php 如果 selector=feed 那么它将打开文件 feed/index.php 谢谢

标签: php .htaccess


【解决方案1】:

这行得通吗?

RewriteEngine On
RewriteBase /beta/
RewriteRule ^index.php$ - [L]
RewriteRule ^feed/?$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?selector=$1 [L,QSA]

【讨论】:

  • 是的,它正在工作,但只有一个问题。问题是:mydomain.com/beta/?selector=feed 提要文件出现在提要目录中意味着提要/index.php 这只是一个问题。
  • 我不太明白这个问题。对不起。你能进一步澄清吗?谢谢!
  • w8,这不是网络服务器的默认行为吗?如果你把/beta/feed它会默认打开/beta/feed/index.php?
  • 使用前面的代码,然后一定要把选择器的斜杠去掉。。var_dump($_GET['selector']); 的输出值是什么?
  • echo var_dump($_GET['selector']); =“饲料”
猜你喜欢
  • 2015-03-15
  • 2015-04-03
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多