Правило переписывания Apache (перезапись URL) - PullRequest
0 голосов
/ 08 декабря 2010

Как можно переписать URL например, я хочу чтобы мой был похож на

www.myurl.com/study-abroad/what/ever/

Если я наберу

www.myurl.com/studyabroad/what/ever/

Идея состоит в том, чтобы учиться за границей, а не учиться за рубежом

Ответы [ 2 ]

2 голосов
/ 08 декабря 2010

Это можно сделать, если заранее знать, с каким количеством тире на URL вы столкнетесь:

RewriteEngine On

# Replacing a single dash, e.g. example.com/study-abroad/what/ever
RewriteCond %{REQUEST_URI} ^([^-]*)-([^-]*)$
RewriteRule ^([^-]*)-([^-]*)$ $1$2 [L]

# Replacing two dashes, e.g. example.com/study-abroad/what-ever
RewriteCond %{REQUEST_URI} ^([^-]*)-([^-]*)-([^-]*)$
RewriteRule ^([^-]*)-([^-]*)-([^-]*)$ $1$2$3 [L]

... и так далее. Могу ли я добавить, однако, что это нарушает дизайн, и вам следует пересмотреть свой подход.

Привет

0 голосов
/ 08 декабря 2010

Для такого простого примера я бы использовал mod_alias Redirects вместо mod_rewrite.Пример:

Redirect permanent /studyabroad http://www.myurl.com/study-abroad

См. http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirect для полной документации.

Вам необходимо поместить этот (или аналогичный) фрагмент в файл конфигурации Apache: если он включен (иесли у вас есть соответствующие разрешения), это может быть .htaccess в каталоге вашего сайта.Или вы можете изменить основной конфиг Apache.Информацию о файлах конфигурации Apache см. В http://httpd.apache.org/docs/current/configuring.html.

(отредактировано для инвертирования отображения: добавление тире вместо удаления)

...