我开始与Zend框架,并在他们的网站上是这样的:
http://framework.zend.com/manual/en/zend.controller.html#zend.controller.quickstart.go.rewrite
RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
如何把这个好用? 我该怎么做才能使这个工作? 现在,当我加载我的网站,我得到500内部服务器错误… 🙂
我应该改变REQUEST_FILENAME到别的吗?
我还是很新的htaccess和mod_rewrite …
即时通讯使用WAMPSERVER …
显然我忽略了最明显的答案:我只是改变了这个:
#LoadModule rewrite_module modules/mod_rewrite.so
对此:
LoadModule rewrite_module modules/mod_rewrite.so
在httpd.conf文件中。 现在一切正常。
内部服务器错误意味着您的.htaccess中有错误
尝试删除它,只是为了看看问题是否消失。 在这种情况下,添加您的线路,以find哪些是有缺陷的
使用.httaccess获取错误500的方法有很多。 也许你在文件上设置了错误的权限,或者你有一个错字。
所以我想我明白你的意思了。 你基本上试图重写任何不存在的请求到另一个页面。 而不是你在做什么,我会试试这个:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*)$ /index.php [NC,L]
这只会在文件/目录/链接不存在的情况下匹配,并将其重写为指向索引页面。
你应该检查你的服务器错误日志的细节。 对于Apache,这通常是Linux上的%APACHE_DIR%\logs\error.log (在Windows上)或/var/logs/apache/error.log 。
我添加了以下redirect规则,redirect工作正常,但地址栏中的URL不会打印或看起来需要。
RewriteRule ^(az).htm http:/localhost/info/mystuff.php?tech = $ 1 [L]
我想我的url是像http:// localhost / info / w3calculator
但它打印为http:/localhost/info/mystuff.php?tech = w3calculator
我认为这是服务器问题,我该如何解决它?