How to remove part of URl with .htaccess?

2020-02-05 10:23发布

Currently i have 20+ URLs on my site in this formate

http://www.example.net/content/index/mission

I want to remove /content/index from all URLs, so they should look something like this

http://www.example.net/mission

In other words I would to always remove /content/index from the url. I'm sure it's really straight forward, but I'm not very experienced with Apache.

5条回答
做自己的国王
2楼-- · 2020-02-05 10:26

I also have a script I wrote that you put on your server then browse to it via internet browser and it can confirm if you have mod_rewrite on your server. The way I showed you works 100% as long as mod_rewrite is enabled

查看更多
混吃等死
3楼-- · 2020-02-05 10:34

I'm going to guess you already have some rewrite rules in place for URLs like http://www.example.net/content/index/mission

You need to find these rules and add a new one which uses a similar structure but 'hard codes' the content/index parts, for example, suppose the existing one was

RewriteRule ^content/(.*)/(.*)$ /content.php?param1=$1&param2=$2 [L,qsa]

You'd want to make a new rule to pick up /mission and rewrite it in a similar way, but before the existing rule kicks in, e.g.

RewriteRule ^mission$ /content.php?param1=index&param2=mission [L,qsa]
RewriteRule ^content/(.*)/(.*)$ /content.php?param1=$1&param2=$2 [L,qsa]

These are just examples - it will really depend on what your existing rules are.

查看更多
时光不老,我们不散
4楼-- · 2020-02-05 10:47

You would need the rewrite module of Apache: mod_rewrite.

Then do something like this:

RewriteEngine on 
RewriteRule ^content/index/(.*)$ $1

Here is the official documentation of mod_rewrite: click

查看更多
干净又极端
5楼-- · 2020-02-05 10:49
  # Get rid of index.php
  RewriteCond %{REQUEST_URI} /index\.php
  RewriteRule (.*) index.php?rewrite=2 [L,QSA]

  # Rewrite all directory-looking urls
  RewriteCond %{REQUEST_URI} /$
  RewriteRule (.*) index.php?rewrite=1 [L,QSA]

Or just add index.html depending on whatever extention you want to remove and MOD_REWRITE is required on Apache for this to work. Thank you.

查看更多
闹够了就滚
6楼-- · 2020-02-05 10:52
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/removedstring/
RewriteRule ^removedstring/(.*)$ https://www.domain.eu/$1 [L,NC,R=301]
查看更多
登录 后发表回答