在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无法打开“http://mk12.gotdns.com/”页面,因为此页面所在的服务器没有响应。
任何人都知道出了什么问题?
编辑:我能够制作例如禁止重写的css文件,并且它可以工作,但是从下载到index.php?page = downloads的任何规则都会使服务器无法响应(见上文),什么页面无关紧要,网站根本不会加载。任何想法..?答案 0 :(得分:1)
调试重写规则的最佳方法是启用重写日志记录,以便您可以看到出现了什么问题。
答案 1 :(得分:0)
您是否厌倦了在“下载”前面添加斜杠
RewriteRule ^/downloads/?$ index.php?page=downloads
编辑:请尝试以下代码:
RewriteEngine On
RewriteBase /
RewriteRule ^downloads/?$ /index.php?page=downloads
答案 2 :(得分:0)
我会尝试在下载后删除尾部斜杠和问号,并在index.php之前删除前导斜杠。
RewriteEngine On
RewriteBase /
RewriteRule ^downloads$ index.php?page=downloads.
答案 3 :(得分:0)
工作!!我把代码放在错误的位置。它在httpd.conf中,但最后。将其移至< Directory>它的好处。谢谢你的帮助!
编辑:此外,我发现如果标志是这样的话,它将无效:[L, NC]
。它必须是[L,NC]
(没有空格)。
因此,它不在< Directory“/ Library / WebServer / Documents”>内的两个问题,并且标志之间有空格。希望这将有助于将来的其他人。