Как удалить часть URl-адреса.реврайт?
В настоящее время у меня есть 20+ URLs на моем сайте в этом формате
http://www.example.net/content/index/mission
Я хочу удалить / content / index из всех URL-адресов, поэтому они должны выглядеть примерно так
http://www.example.net/mission
другими словами, Я бы всегда удалял / content / index из url. Я уверен, что это действительно прямолинейно, но я не очень опытен с Apache.
4 ответов
вам понадобится модуль перезаписи Apache:mod_rewrite
.
затем сделать что-то вроде этого:
RewriteEngine on
RewriteRule ^content/index/(.*)$
вот официальная документация mod_rewrite:клик
Я думаю, у вас уже есть некоторые правила перезаписи для URL-адреса, как http://www.example.net/content/index/mission
вам нужно найти эти правила и добавить новый, который использует аналогичную структуру, но "жесткие коды" частей контента/индекса, например, предположим, что существующий был
RewriteRule ^content/(.*)/(.*)$ /content.php?param1=¶m2= [L,qsa]
вы хотели бы сделать новое правило, чтобы забрать / миссия и переписать его аналогичным образом, но до существующее правило срабатывает, например,
RewriteRule ^mission$ /content.php?param1=index¶m2=mission [L,qsa]
RewriteRule ^content/(.*)/(.*)$ /content.php?param1=¶m2= [L,qsa]
это всего лишь примеры - это действительно будет зависеть от того, каковы ваши существующие правила.
# 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]
или просто добавить индекс.html в зависимости от любого расширения, которое вы хотите удалить, и MOD_REWRITE требуется на Apache для этого. Спасибо.
У меня также есть сценарий, который я написал, что вы положили на свой сервер, а затем перейдите к нему через интернет-браузер, и он может подтвердить, есть ли у вас mod_rewrite на вашем сервере. То, как я показал вам, работает на 100%, пока mod_rewrite включен