【问题标题】:Rewrite rule and page not found找不到重写规则和页面
【发布时间】:2015-01-31 13:16:04
【问题描述】:

我正在尝试在我的服务器 debian 上配置 apache,但我遇到了重写模块的问题... 我已经通过带有 a2enmod rewrite 和 phpinfo 显示已加载的终端激活它...

像这样的简单 htaccess 可以正常工作

RewriteEngine on
RewriteRule ^prova1.html$ prova2.html

但如果我尝试使用我的网站,那就是错误

Not Found
The requested URL ........ was not found on this server.

我的网站在具有相同 htaccess 文件的 aruba 提供商上正常工作...

我在 apache2 目录中更改了 000-default.conf 并添加了这一行

DocumentRoot /home/debian/www/

<Directory /home/debian/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>

我不明白问题出在哪里......

这是我的 htaccess

<IfModule mod_security.c>
    SecFilterEngine Off
    SecFilterScanPOST Off
</IfModule>

RewriteEngine On
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} -d
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule . - [L]
RewriteRule ^pagina([^-]*)-([^-]*)\.html$ /pagina.php?id=$1&title=$2 [L]

【问题讨论】:

  • 验证您的.htaccess 是否启用,方法是在您的.htaccess 上放置相同的垃圾(随机)文本,看看它是否会产生500(内部服务器)错误?跨度>

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


【解决方案1】:

您是否重新加载了 apache2?服务 apache2 重新加载

如果这不起作用,请尝试注释掉这一行:Options Indexes FollowSymLinks MultiViews using a #

【讨论】:

  • Nothing...带有注释行选项索引等...结果是一样的...我所做的每一个更改服务apache2重新加载并启用htaccess,因为在RewriteRule ^prova1上使用了RewriteEngine。 html$ prova2.html 规则工作...
  • 您可能必须将配置中的任何地方的 AllowOverride 更改为 All。如果这不起作用,请尝试添加此内容,重新加载 apache 并添加以下行:RewriteLog "/var/log/apache2/rewrite.log" RewriteLogLevel 3
  • 我已经在 etc/apache2/apache.conf 目录 /home/debian/www 和目录 /Nothing 中更改了 AllowOverride ......现在我已经激活了 LogLevel warn mod_rewrite .c:trace3 我必须在 error.log 中看到什么?
猜你喜欢
  • 2012-03-08
  • 2012-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
相关资源
最近更新 更多