<p>Solved! I found the answer here: <a href="https://stackoverflow.com/questions/7670561/how-to-get-htaccess-to-work-on-mamp">https://stackoverflow.com/questions/7670561/how-to-get-htaccess-to-work-on-mamp</a></p>

<p>The problem was an Apache config setting. The solution was this: </p>

<ol>
<li><p>Went to httpd.conf on /Applications/MAMP/conf/apache</p></li>
<li><p>In httpd.conf, found:</p></li>
</ol>

<p>
    Options Indexes FollowSymLinks
    AllowOverride None
</p>

<ol start="3">
<li><p>Replaced None with All.</p></li>
<li><p>Restarted MAMP servers.</p></li>
</ol>

<p>This solved the problem in my local environment. Don't know what will happen when I put my site in a shared server. Also don't really know what that configuration is at all, all I know is it worked.</p>

<p>Note that the configuration line that has to do with .htaccess was NOT the problem. That one was already set to AllowOverride All as it's supposed to.</p>

CC BY-SA 3.0
2015-03-28T18:18:20.090Z
2015-03-28T18:18:20.090Z
2017-05-23T12:38:53.957Z
MDLG
<p>These are the settings I have in place for config.php and .htaccess file.</p>

<p><img src="https://i.sstatic.net/hBEt8.png" alt="enter image description here"></p>

<p><img src="https://i.sstatic.net/ukguu.png" alt="enter image description here"></p>

CC BY-SA 3.0
2015-03-26T15:30:12.063Z
What about the other stuff that's in the config file by default? Should  delete it?
MDLG
CC BY-SA 3.0
2015-03-26T15:30:29.197Z
My .htaccess file looks just like yours
MDLG
CC BY-SA 3.0
2015-03-26T19:33:20.897Z
You add it into the '*' array just as my screenshot shows and as the first image that you added to your question shows. You shouldn't have to delete anything else that comes by default in the config files.
Anna_MediaGirl
CC BY-SA 3.0
2015-03-27T23:12:14.447Z
I added it to the * array, see screenshots above... none worked.
MDLG
CC BY-SA 3.0
2015-03-28T03:55:21.037Z
Where is this site hosted?
Anna_MediaGirl
CC BY-SA 3.0
2015-03-28T15:20:12.310Z
Local environment using MAMP
MDLG
CC BY-SA 3.0
2015-03-06T23:10:49.977Z
2015-03-06T23:10:49.977Z
Anna_MediaGirl
<p>I'd put money on your <code>.htaccess</code> file. Could be a permissions issue or maybe you misspelled <code>.htaccess</code> when renaming it? (The Craft distro comes without the period.) That's certainly happened to me—it's easy to do that (<code>.htacccess</code> anyone?) and then overlook everything else...</p>

<p>If you're using a recent version of MAMP (and not MAMP Pro), it also gives you a choice of using nginx as the web server—which will kindly ignore .htaccess files. It's possible that choice got checked inadvertently when setting up the document root?</p>

<p>One other longshot is <code>mod_rewrite</code> got disabled somehow, though since it's a common module, it's less likely.</p>

CC BY-SA 3.0
2015-03-28T17:57:46.987Z
Oooofff. .htaccess isn't misspelled. MAMP web server is set to Apache. Where should the .htaccess file be? I tried both inside "public" and inside the directory that contains "public" (i.e. at the same level as "public"). I have not tried to put it inside "craft." There's a an .htaccess file in there that just says "deny from all".
MDLG
CC BY-SA 3.0
2015-03-28T16:58:37.523Z
2015-03-28T16:58:37.523Z
RitterKnight
<p>I had that problem as well. Try adding </p>

<pre><code>RewriteBase /
</code></pre>

<p>to just under RewriteEngine On. Worked instantly for me.</p>

CC BY-SA 3.0
2015-03-26T15:30:48.290Z
This didn't seem to solve the problem.
MDLG
CC BY-SA 3.0
2015-03-07T16:08:35.690Z
2015-03-07T16:08:35.690Z
danhere
<p>I edited .htaccess as described here <a href="http://buildwithcraft.com/help/remove-index.php" rel="nofollow noreferrer">http://buildwithcraft.com/help/remove-index.php</a> and added this 'omitScriptNameInUrls' => true, to craft/config/general.php, but it doesn't work. </p>

<p>Image:</p>

<p><img src="https://i.sstatic.net/VP9dP.png" alt="enter image description here"></p>

<p>I also have my .htaccess file set up: </p>

<p>
    RewriteEngine On
    # Send would-be 404 requests to Craft
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/(favicon.ico|apple-touch-icon.*.png)$ [NC]
    RewriteRule (.+) index.php?p=$1 [QSA,L]
</p>

<p>This file is inside public folder and I also tried putting in in the directory that contains the public folder. </p>

<p>What happens is this: whether 'omitScriptNameInUrls' => true is added or not, the home displays fine without the index.php, but the internal pages require index.php to display.</p>

<p>The only thing that happens when I add 'omitScriptNameInUrls' => true is that the navigation spits out links without the index.php, and so the navigation breaks.</p>

<p>The good people at Craft said that my site (which is a retooling of the Happy Lager demo site) has been changed to a multi-environment config, which is why my config file looks the way it looks. Not sure if there's anything else that needs to me added to a multi-environment config to get the thing to work.</p>

<p>I have not been able to get any more clarification from Craft about this issue yet.</p>

CC BY-SA 3.0
2015-03-06T04:06:43.517Z
Can you edit the original question to show what your `craft/config/general.php` file looks like?
Brad Bell
CC BY-SA 3.0
2015-03-26T15:42:41.203Z
Your general.php in your 1st screenshot is right. It should go directly unter the * array and not within you environmentVariables array. See Anna's answer!
carlcs
CC BY-SA 3.0
2015-03-26T23:48:38.753Z
How do you load the pages that gets index.php appended? Or do you enter them in the URL bar manually?
carlcs
CC BY-SA 3.0
2015-03-27T23:11:42.547Z
The thing in the first screenshot didn't work for me.
MDLG
<multi-environment><index>
Can't remove index.php from my URLs
# Can't remove index.php from my URLs

(Asked by: username_0 on 2015-03-06)

I edited .htaccess as described here <http://buildwithcraft.com/help/remove-index.php> and added this 'omitScriptNameInUrls' => true, to craft/config/general.php, but it doesn't work.

Image:

![enter image description here](https://i.sstatic.net/VP9dP.png)

I also have my .htaccess file set up:

RewriteEngine On
# Send would-be 404 requests to Craft
RewriteCond %{REQUEST\_FILENAME} !-f
RewriteCond %{REQUEST\_FILENAME} !-d
RewriteCond %{REQUEST\_URI} !^/(favicon.ico|apple-touch-icon.\*.png)$ [NC]
RewriteRule (.+) index.php?p=$1 [QSA,L]

This file is inside public folder and I also tried putting in in the directory that contains the public folder.

What happens is this: whether 'omitScriptNameInUrls' => true is added or not, the home displays fine without the index.php, but the internal pages require index.php to display.

The only thing that happens when I add 'omitScriptNameInUrls' => true is that the navigation spits out links without the index.php, and so the navigation breaks.

The good people at Craft said that my site (which is a retooling of the Happy Lager demo site) has been changed to a multi-environment config, which is why my config file looks the way it looks. Not sure if there's anything else that needs to me added to a multi-environment config to get the thing to work.

I have not been able to get any more clarification from Craft about this issue yet.

**Tags:** multi-environment, index

> **Comments:**
> **username_1**: Can you edit the original question to show what your `craft/config/general.php` file looks like?  
> **username_2**: Your general.php in your 1st screenshot is right. It should go directly unter the * array and not within you environmentVariables array. See Anna's answer!  
> **username_2**: How do you load the pages that gets index.php appended? Or do you enter them in the URL bar manually?  
> **username_0**: The thing in the first screenshot didn't work for me.  

---

## 4 answers

### Answer by username_0 on 2015-03-28. Score: 2 | Accepted answer

Solved! I found the answer here: <https://stackoverflow.com/questions/7670561/how-to-get-htaccess-to-work-on-mamp>

The problem was an Apache config setting. The solution was this:

1. Went to httpd.conf on /Applications/MAMP/conf/apache
2. In httpd.conf, found:

Options Indexes FollowSymLinks
AllowOverride None

3. Replaced None with All.
4. Restarted MAMP servers.

This solved the problem in my local environment. Don't know what will happen when I put my site in a shared server. Also don't really know what that configuration is at all, all I know is it worked.

Note that the configuration line that has to do with .htaccess was NOT the problem. That one was already set to AllowOverride All as it's supposed to.


---

### Answer by username_3 on 2015-03-06. Score: 4

These are the settings I have in place for config.php and .htaccess file.

![enter image description here](https://i.sstatic.net/hBEt8.png)

![enter image description here](https://i.sstatic.net/ukguu.png)

> **Comments:**
> **username_0**: What about the other stuff that's in the config file by default? Should  delete it?  
> **username_0**: My .htaccess file looks just like yours  
> **username_3**: You add it into the '*' array just as my screenshot shows and as the first image that you added to your question shows. You shouldn't have to delete anything else that comes by default in the config files.  
> **username_0**: I added it to the * array, see screenshots above... none worked.  
> **username_3**: Where is this site hosted?  
> **username_0**: Local environment using MAMP  

---

### Answer by username_4 on 2015-03-28. Score: 2

I'd put money on your `.htaccess` file. Could be a permissions issue or maybe you misspelled `.htaccess` when renaming it? (The Craft distro comes without the period.) That's certainly happened to me—it's easy to do that (`.htacccess` anyone?) and then overlook everything else...

If you're using a recent version of MAMP (and not MAMP Pro), it also gives you a choice of using nginx as the web server—which will kindly ignore .htaccess files. It's possible that choice got checked inadvertently when setting up the document root?

One other longshot is `mod_rewrite` got disabled somehow, though since it's a common module, it's less likely.

> **Comments:**
> **username_0**: Oooofff. .htaccess isn't misspelled. MAMP web server is set to Apache. Where should the .htaccess file be? I tried both inside "public" and inside the directory that contains "public" (i.e. at the same level as "public"). I have not tried to put it inside "craft." There's a an .htaccess file in there that just says "deny from all".  

---

### Answer by username_5 on 2015-03-07. Score: 1

I had that problem as well. Try adding 
RewriteBase /

to just under RewriteEngine On. Worked instantly for me.

> **Comments:**
> **username_0**: This didn't seem to solve the problem.  

---

