我在共享主机上遇到了mod_rewrite
和Laravel 4的问题。
我已将公开重命名为lvrp
。重命名本身很好,并已在我的localhost上测试过。但是,在上传到GoDaddy时,它首先只丢了一个500错误。然后我找到另一个 .htaccess 并将其更改为:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
它可能不是最好的,但至少它有效。那种。
我可以访问初始页面。除非我将index.php添加到URI,否则我无法访问任何其他页面。使用index.php,我可以访问每个页面。
关于如何使其工作而不必添加index.php的任何想法?
编辑#1:
[error] [client x.x.x.x] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
这是我在apache日志中遇到的错误。
答案 0 :(得分:0)
关于如何使其工作而不必添加index.php的任何想法?
它不需要mod_rewrite。只需在.htaccess:
上添加此行DirectoryIndex index.html index.php
这将使apache自动查找并呈现index.html,否则index.php将显示在DOCUMENT_ROOT下的任何子目录中。
答案 1 :(得分:0)
好吧,不知怎的,我通过将项目移动到另一个目录来实现这一点。
Apache mod_rewrite(和正则表达式)仍然让我困惑。我不知道为什么它不起作用或为什么它现在起作用。至少它按我想要的方式工作。
对于遇到同样问题的其他人,我在搜索godaddy时遇到了很多例子,还有干净的网址问题。我希望它可以提供一些帮助。
感谢您的回答。
答案 2 :(得分:0)
我知道它已经过时了,但我今天才遇到这个问题并且要解决它我改变了
RewriteRule ^(.*)$ index.php/$1 [L]
到
RewriteRule ^(.*)$ /index.php/$1 [L]