【问题标题】:.htaccess not working even after mod_rewrite enabled.htaccess 即使在启用 mod_rewrite 后也无法工作
【发布时间】:2017-07-14 21:33:56
【问题描述】:

我在服务器上设置了一个项目,该项目使用 apache Web 服务器和 PHP 作为脚本语言。在我的本地机器上(使用 XAMPP).htaccess 正在工作。我用下面的脚本测试了它,它被重定向到谷歌。下面的脚本是文件的第一行。

RewriteEngine On
Options +FollowSymLinks
RewriteRule ^test\.php http://www.google.com/? [R=301,L]

但是服务器上的相同配置不起作用。我确认mod_rewrite 已启用。 我无权访问服务器配置,只能通过 phpinfo() 查看和确认。

Symfony 2.6 + apache 2.2 + php 5.5.23 是配置。

【问题讨论】:

  • 当您访问您的网址时会发生什么??
  • 我用根目录下的 test.php 文件对其进行了测试。它不会重定向到 Google。相反,它会加载 test.php 页面内容。
  • 你有AllowOverride All 吗?
  • @Gogol AllowOverride All 是我无法访问的 apache 配置中的一个选项。
  • 试着把它放在你的 htaccess 中

标签: php apache .htaccess httpd.conf


【解决方案1】:

您的服务器上似乎没有启用 mod-rewrite。您可以在 htaccess 中使用以下基于 mod-alias 的重定向:

Redirect /test.php http://google.com/

【讨论】:

  • 我添加了这个 - Redirect /test.php http://google.com/ 作为 .htaccess 的第一行,但它没有重定向。在这里,我认为我的网络服务器根本没有读取 .htacess。关于如何确认的任何线索?以下是我在 .htacess Redirect /test.php http://google.com/ <Directory /> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> 上的代码
  • 指令在 htaccess 上下文中不受支持,是的,您的服务器没有读取 .htaccess,否则您会因不支持的指令而收到 500 服务器错误。
  • Redirect 附加客户端请求的任何内容并将其附加到目的地,OP 原始重写似乎没有这样做,只需将 test.php 重写到 google,而不附加任何内容,所以正确的事情就是 RedirectMatch
  • @ezra-s 我知道。但是我们正在重定向文件而不是目录。除了 path_info 之外,没有其他内容会被附加。
  • @starkeen 可以理解,但如果有人请求 http://whatever/test.phpwhateverldsfkflñdksflñksñlfkdsfñldkd,它会重定向到 https://www.google.com/whateverldsfkflñdksflñksñlfkdsfñldkd。因此,基本上,如果您想将文件重定向到不附加内容的内容,请使用 RedirectMatch。
猜你喜欢
  • 2015-03-28
  • 2017-10-08
  • 1970-01-01
  • 2021-10-27
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2012-08-05
  • 1970-01-01
相关资源
最近更新 更多