我创建了一个我在本地运行的网站。我配置了我的主机文件和虚拟主机:
Adress: website.dev
DocumentRoot: /www/website/public_html
我可以正确访问网站。
在public_html文件夹中有以下文件:
index.php
.htaccess
我尝试配置.htaccess文件,但我对此并不是很有经验,所以也许我做错了。
这个想法是每个请求,例如'website.dev/users'或'website.dev/login'都由索引文件处理,因此我可以处理给定的URL。 (我认为URL:website.dev不需要重写,因为它直接导致index.php,因为它是documentRoot)
这很好但我注意到,当我在.htacces文件中使用rewriteRule
时,我的页面被多次打开了。
这是我的.htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
当我注释掉所有rewriteRule
行,并转到:website.dev时,我看到我的网页只被调用一次。 .htaccess文件中的内容会导致双页调用吗?
答案 0 :(得分:1)
不需要某些条件。
你正在测试:
是文件大小> 0 OR是符号链接,OR是目录OR是常规文件。
我有以下重写/ users / id:index.php?url = users / id
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule !\.(jpg|css|js|gif|png)$ public/ [L]
RewriteRule !\.(jpg|css|js|gif|png)$ public/index.php?url=$1
答案 1 :(得分:0)
<强>解决方案:强>
我通过查看apache日志文件找到了问题,所以我注意到webserver(wamp)查找了一个.ico文件(wamp logo)以显示在浏览器的addresbar中,但是在我的项目中这个文件不存在,创建了一个404,所以再次调用索引文件,我在我的项目文件夹中创建了所需的ico文件,一切都像魅力一样。