Aleksandar
Aleksandar

Reputation: 511

Remove directory name from url

Because all my files are php I have removed php extension with this .htacess file:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

So I have this URL:

http://example.com/live/kanal/some-title-1
http://example.com/live/kanal/some-title-2
http://example.com/live/kanal/some-title-13
http://example.com/live/kanal/some-title-45
http://example.com/live/kanal/2some-title-333

etc ...

I want to hide kanal/ from url, to get URL like this:

http://example.com/live/some-title-1
http://example.com/live/some-title-2
http://example.com/live/some-title-13
http://example.com/live/some-title-45
http://example.com/live/2some-title-333

How can I achieve this using mod_rewrite?

I used online generators for doing the rewrite rules but none can remove a piece of text from the URL. Also I made search on this forum, and I found some posts about mod rewrite directory but I have issues when pasting in my .htacess code.

Upvotes: 1

Views: 398

Answers (1)

anubhava
anubhava

Reputation: 785126

You can use this code in /live/.htaccess:

RewriteEngine On
RewriteBase /live/

RewriteRule ^(?!kanal/)(.*)$ kanal/$1 [L,NC]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

Make sure there is no .htaccess in kanal/ sub-directory.

Upvotes: 2

Related Questions