题
在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.