<p>I'd suggest starting with the official docs on removing index.php from your URLS:</p>

<p><a href="https://craftcms.com/support/remove-index.php" rel="nofollow noreferrer">https://craftcms.com/support/remove-index.php</a></p>

<p><a href="https://craftcms.com/support/why-index.php" rel="nofollow noreferrer">https://craftcms.com/support/why-index.php</a></p>

<p>And if that doesn't help, there are lots more <a href="https://craftcms.stackexchange.com/search?q=index.php">environment-specific things</a> here on Craft SE, you can check.</p>

CC BY-SA 3.0
2017-01-31T12:04:26.530Z
Thank you Brand. I already tried both and It's redirect, but in output HTML the link is with index.php between site and slug. This only happens on channel pages (news).
Irina
CC BY-SA 3.0
2017-01-31T18:20:37.913Z
So you're saying you only get the index.php in the URL when you output it via `{{ entry.url }}`, but everywhere else, the `index.php` is being properly removed?
Brad Bell
CC BY-SA 3.0
2017-02-06T05:23:12.543Z
Correct @BradBell. I get the index.php only in output html and this drive me a bit crazy...  tnx
Irina
CC BY-SA 3.0
2017-01-31T05:19:14.383Z
2017-01-31T05:19:14.383Z
2017-04-13T12:51:00.160Z
Brad Bell
<p>I had a case of this awhile back too. Craft will listen on whatever domain you point it to. If your site url (eg in Settings) doesn't actually resolve on the internet yet—or you have it pointed wrong—Craft will assume it doesn't actually work unless you tell otherwise. Drove me nuts for a couple hours one day until I retraced everything and realized I had the testing server URL still stuck in there.</p>

<p>In addition to what everyone else has written,  I don't try to troubleshoot these kinds of issues using your regular web browser, use <code>curl -I http://whatever</code> to see what's happening. </p>

CC BY-SA 3.0
2017-02-06T13:51:35.923Z
Hi @RitterKnight, thank you for your reply. Do you mean that till I point DNSs it will print index.php in output HTML? This is doesnt sound logic, but thank you anyway for an idea, who knows... :)  I will try to install just clear site on real domain and let you know if it solve the issue.
Irina
CC BY-SA 3.0
2017-02-06T23:27:17.297Z
Let's say you have a testing server ``test.whatever.com``. On the Internet, maybe the DNS hasn't caught up but you had put an entry in your local ``hosts`` file to push it out to production.  I admit, probably not common but worth thinking about. Some developers don't worry about pointing servers until the site is actually off staging and that switch can take some time.
RitterKnight
CC BY-SA 3.0
2017-02-03T19:26:10.013Z
2017-02-03T19:26:10.013Z
RitterKnight
<p>is there are anything to do to delete index.php from output html? This is not very "clear"... </p>

<p>In my case its channel array and I call {{entry.url}}...
Any idea how could be this fixed / avoid?</p>

<p>Big TNX for any idea!</p>

CC BY-SA 3.0
2017-01-30T23:36:28.940Z
There are many questions here about `index.php` in URLs... do any of those address your issue? http://craftcms.stackexchange.com/search?q=index.php
Lindsey D
CC BY-SA 3.0
2017-01-31T12:02:54.783Z
Yes, Lindsey, I know that there is a lot questions about it and I red them almost all. My httacces looks working fine, but I find that the problem is that in output html the url is printed with index.php and for SEO it´s not very good (as well I saw that somebody had problem with Google Ananlytics) and it´s worry me a lot.
Irina
CC BY-SA 3.0
2017-02-07T23:39:19.300Z
If your htaccess is working correctly, you won't see index.php output anywhere, including in your analytics. I'd suggest opening a new question with the htaccess you're using and what exactly you're seeing and where.
Jeremy Daalder
<url>
index.php in output HTML - channel pages
# index.php in output HTML - channel pages

(Asked by: username_0 on 2017-01-30)

is there are anything to do to delete index.php from output html? This is not very "clear"...

In my case its channel array and I call {{entry.url}}...
Any idea how could be this fixed / avoid?

Big TNX for any idea!

**Tags:** url

> **Comments:**
> **username_1**: There are many questions here about `index.php` in URLs... do any of those address your issue? http://craftcms.stackexchange.com/search?q=index.php  
> **username_0**: Yes, Lindsey, I know that there is a lot questions about it and I red them almost all. My httacces looks working fine, but I find that the problem is that in output html the url is printed with index.php and for SEO it´s not very good (as well I saw that somebody had problem with Google Ananlytics) and it´s worry me a lot.  
> **username_2**: If your htaccess is working correctly, you won't see index.php output anywhere, including in your analytics. I'd suggest opening a new question with the htaccess you're using and what exactly you're seeing and where.  

---

## 2 answers

### Answer by username_3 on 2017-01-31. Score: 1

I'd suggest starting with the official docs on removing index.php from your URLS:

<https://craftcms.com/support/remove-index.php>

<https://craftcms.com/support/why-index.php>

And if that doesn't help, there are lots more [environment-specific things](https://craftcms.stackexchange.com/search?q=index.php) here on Craft SE, you can check.

> **Comments:**
> **username_0**: Thank you Brand. I already tried both and It's redirect, but in output HTML the link is with index.php between site and slug. This only happens on channel pages (news).  
> **username_3**: So you're saying you only get the index.php in the URL when you output it via `{{ entry.url }}`, but everywhere else, the `index.php` is being properly removed?  
> **username_0**: Correct @BradBell. I get the index.php only in output html and this drive me a bit crazy...  tnx  

---

### Answer by username_4 on 2017-02-03. Score: 1

I had a case of this awhile back too. Craft will listen on whatever domain you point it to. If your site url (eg in Settings) doesn't actually resolve on the internet yet—or you have it pointed wrong—Craft will assume it doesn't actually work unless you tell otherwise. Drove me nuts for a couple hours one day until I retraced everything and realized I had the testing server URL still stuck in there.

In addition to what everyone else has written, I don't try to troubleshoot these kinds of issues using your regular web browser, use `curl -I http://whatever` to see what's happening.

> **Comments:**
> **username_0**: Hi @username_4, thank you for your reply. Do you mean that till I point DNSs it will print index.php in output HTML? This is doesnt sound logic, but thank you anyway for an idea, who knows... :)  I will try to install just clear site on real domain and let you know if it solve the issue.  
> **username_4**: Let's say you have a testing server ``test.whatever.com``. On the Internet, maybe the DNS hasn't caught up but you had put an entry in your local ``hosts`` file to push it out to production.  I admit, probably not common but worth thinking about. Some developers don't worry about pointing servers until the site is actually off staging and that switch can take some time.  

---

