Как удалить часть URl с помощью .htaccess? - PullRequest
7 голосов
/ 10 октября 2011

В настоящее время у меня есть 20+ URL на моем сайте в этом формате

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

Я хочу удалить / content / index из всех URL, чтобы они выглядели примерно так

http://www.example.net/mission

Другими словами, я бы всегда удалял / content / index из URL. Я уверен, что это действительно просто, но я не очень опытен с Apache.

Ответы [ 5 ]

13 голосов
/ 10 октября 2011

Вам потребуется модуль переписывания Apache: mod_rewrite.

Тогда сделайте что-то вроде этого:

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

Вот официальная документация для mod_rewrite: нажмите

1 голос
/ 10 октября 2011

Я предполагаю, что у вас уже есть некоторые правила перезаписи для URL-адресов, таких как http://www.example.net/content/index/mission

Вам нужно найти эти правила и добавить новое, которое использует похожую структуру, но «жесткие коды»части содержимого / индекса, например, предполагают, что существующее было

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

. Вы хотели бы создать новое правило, которое можно было бы подобрать / выполнить и переписать его аналогичным образом, но перед действует существующее правило, например,

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

Это всего лишь примеры - это будет действительно зависеть от ваших существующих правил.

0 голосов
/ 26 апреля 2019
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/removedstring/
RewriteRule ^removedstring/(.*)$ https://www.domain.eu/$1 [L,NC,R=301]
0 голосов
/ 10 октября 2011

У меня также есть скрипт, который я написал, который вы устанавливаете на своем сервере, затем просматриваете его через интернет-браузер, и он может подтвердить, есть ли у вас mod_rewrite на вашем сервере. Способ, который я показал вам, работает на 100%, пока включен mod_rewrite

0 голосов
/ 10 октября 2011
  # 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]

Или просто добавьте index.html в зависимости от того, какое расширение вы хотите удалить, и для работы Apache требуется MOD_REWRITE. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...