【问题标题】:.htaccess issue in LiteSpeed Web ServerLiteSpeed Web 服务器中的 .htaccess 问题
【发布时间】:2019-01-13 19:56:59
【问题描述】:

需要有关 litespeed Web 服务器 .htaccess 规则的帮助。

http://example.com/temp/home.php是现有的URL,但现在我们需要重写的内容如下:

http://example.com/temp.php?redirect=home.php

我们现有的.htaccess 代码也在下面给出。

RewriteEngine on<br/>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^temp/(.*)$ temp.php?redirect=$1 [QSA,L]

但我不知道问题所在,此重写仍然无法正常工作并显示 404 错误,因为 temp/home.php 不存在。

这些规则与 Apache 服务器完美配合,但不适用于 Litespeed

供参考: https://htaccess.madewithlove.be?share=d15d3bca-6974-5682-902a-823c1a63e2b7

提前致谢。

【问题讨论】:

  • 您确认 mod_rewrite 和 .htaccess 已启用吗?尝试禁用 MultiViews - 如果启用 MultiViews,您的脚本肯定不会工作,但是,您也不希望(服务器生成)404。

标签: .htaccess mod-rewrite url-rewriting litespeed


【解决方案1】:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^temp/(.*)$ temp.php?redirect=$1 [QSA,L]

以上代码将提供temp.php?redirect=home.php的内容。

作为测试,我在域的根目录中创建了temp.php,内容如下:

<?php
var_dump($_GET);

访问/temp/home.php时的结果是:

array(1) {
  ["redirect"]=>
  string(8) "home.php"
}

这是在 LiteSpeed Web Server 5.3.4 和 5.3.5 上测试的。

【讨论】:

  • 嘿@LucasRolff 如果 temp.php 不在根目录中怎么办?假设网址是:https://example.com/dir/another_dir/temp/home.php
  • @NavneetYadav,由于重写规则的完成方式,这将不起作用 RewriteRule 在开头查找temp/(因为^)。
猜你喜欢
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2020-10-16
  • 1970-01-01
  • 1970-01-01
  • 2017-03-14
  • 2021-08-21
相关资源
最近更新 更多