在httpd.conf文件中,我有AllowOverride FileInfo。在我的网络服务器顶层的.htaccess文件中包含所有其他文件,我有这个:

RewriteEngine On
RewriteRule ^downloads/?$ index.php?page=downloads [L,NC]

但它不起作用。 mywebsite / downloads和mywebsite / downloads /总是给出404找不到。知道为什么吗?谢谢。 (mywebsite / index.php?page = downloads 工作)。

我每次更改时都会重启apache。

当我把上面的代码放在httpd.conf中时,网站根本不会加载,只是空白,永远旋转的safari wheel。

如果我只做RewriteEngine On就好了,但如果我做了其他事情(RewriteBase,RewriteRule),网页浏览器会花费很多时间尝试加载并最终发出此错误:

  

Safari可以<!>#8217;打开页面<!>#8220; http:// mk12。 gotdns.com/ #8221 <!>;因为此页面所在的服务器不是<!>#8217;响应。

任何人都知道出了什么问题?

编辑:我能够制作,例如,禁止重写的css文件,它可以工作,但从下载到index.php?page = downloads的任何规则都会使服务器无法响应(见上文),什么页面无关紧要,网站根本不会加载。任何想法..?

有帮助吗?

解决方案 4

工作!!我把代码放在错误的位置。它在httpd.conf中,但最后。将其移至<!> lt; Directory <!> gt;它的好处。谢谢你的帮助!

编辑:另外,我发现如果标志是这样的话,它将无效:[L, NC]。它必须是[L,NC](没有空格)。

所以这两个问题不在<!> lt; Directory <!>; / Library / WebServer / Documents <!>“<!> gt;内,并且标志之间有空格。希望这将有助于将来的其他人。

其他提示

调试重写规则的最佳方法是启用重写日志记录,以便您可以看到出现了什么问题。

你是否厌倦了在<!>下面添加一个斜杠?下载<!>如下所示

RewriteRule ^/downloads/?$ index.php?page=downloads

编辑:请尝试以下代码:

RewriteEngine On
RewriteBase /
RewriteRule ^downloads/?$ /index.php?page=downloads

我会尝试在下载后删除尾部斜杠和问号,并在index.php之前删除前导斜杠。

RewriteEngine On
RewriteBase /
RewriteRule ^downloads$ index.php?page=downloads.
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top