Silambarasan R
Silambarasan R

Reputation: 1556

Remove Subfolder[Codeigniter] only for specified URLs using Htaccess

My Folder Structure

Root Htaccess

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !(.*)subfolder
RewriteRule ^(.*)$ subfolder/$1 [L]

Subfolder(Codeigniter Project) Htaccess

DirectoryIndex index.php index.html

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond $1 !^(index\.php|assets|install|update)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# For godady Shared Hosting Server uncomment the line below
RewriteRule ^(.*)$ index.php?/$1 [L]


</IfModule>

List of Subfolder URLs

List of Root URLs

In my Codeigniter Project I've set Products controller as default_controller. So the problem is, when I try to access the index.php page in the Root folder it only displays the Codeigniter products list as Home page.

I need following URLs:

Any solutions with htaccess or with code?

Upvotes: 1

Views: 845

Answers (1)

Silambarasan R
Silambarasan R

Reputation: 1556

Finally I got this working.

RewriteCond %{REQUEST_URI} !((.*)subfolder|^/assets) // to Exclude this
RewriteCond %{REQUEST_URI} (^/products(.*)|^/product(.*)) // to Include this
RewriteRule ^(.*)$ subfolder/$1 [L]

Exclamation(!) symbol used to 'not' matching urls.

So I removed Exclamation symbol and used another RewriteCond (Condition) to redirect only if the url contains segment as products or product http://example.com/products/ or http://example.com/product/product-slug-123. It's working perfectly now. I thought, sharing this would be useful to someone. Happy coding.

Upvotes: 2

Related Questions