开发者

How to remove part of URl with .htaccess?

开发者 https://www.devze.com 2023-04-12 02:38 出处:网络
Currently, I have 20+ URLs on my site in this format http://www.example.net/content/index/mission I want to remove /content/index from all URLs, so they should look something like this

Currently, I have 20+ URLs on my site in this format

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.ex开发者_Go百科ample.net/mission

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


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


RewriteEngine On
RewriteCond %{REQUEST_URI} ^/removedstring/
RewriteRule ^removedstring/(.*)$ https://www.domain.eu/$1 [L,NC,R=301]


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.


  # 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.


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

0

精彩评论

暂无评论...
验证码 换一张
取 消