Как создать постоянную ссылку в htaccess - PullRequest
3 голосов
/ 22 июля 2011

Я хочу перенаправить ссылку на другую с помощью файла .htaccess на хосте Linux. Вы можете мне помочь?

from: http://example.com/examp
to: http://example.com/examp.php

И еще один для моего другого сайта

from: http://example.com/examp
to: http://example.com/user.php?u=examp

Ответы [ 3 ]

5 голосов
/ 22 июля 2011

Для этого вам потребуется mod_rewrite . Начните с размещения этих строк в .htaccess:

RewriteEngine On
RewriteBase /

TBH Я не уверен на 100%, что именно вы подразумеваете под постоянной ссылкой и как вы хотите перенаправить, поэтому я предоставлю 2 варианта для каждого URL: перезапись (внутреннее перенаправление) и перенаправление (301 постоянное перенаправление).

1. Это перезапишет (внутренний переадресационный) запрос для http://example.com/examp до http://example.com/examp.php, в то время как URL останется неизменным в браузере:

RewriteRule ^examp$ examp.php [L]

2. Это будет сделано так же, как указано выше, но с правильным перенаправлением (301 Permanent Redirect), когда URL изменится в браузере:

RewriteRule ^examp$ http://example.com/examp.php [R=301,L]

3. Это перезапишет запрос (внутреннее перенаправление) для http://example.com/examp на http://example.com/user.php?u=examp, в то время как URL в браузере останется неизменным:

RewriteRule ^examp$ user.php?u=examp [QSA,L]

4. Это будет делать то же, что и выше, но с правильным перенаправлением (301 Permanent Redirect), когда URL изменится в браузере:

RewriteRule ^examp$ http://example.com/user.php?u=examp [QSA,R=301,L]

Полезная ссылка: http://httpd.apache.org/docs/current/rewrite/

1 голос
/ 08 июня 2013

Для этого вам понадобится mod_rewrite

от: http://example.com/123 до: http://example.com/index.php?q=123

RewriteEngine on
RewriteBase /
RewriteRule ^/?([-A-Za-z0-9]+)/?$ index.php?q=$1 [QSA,L]
0 голосов
/ 22 июля 2011

Вы захотите взглянуть на RewriteRules и знать / понимать регулярные выражения.Это будет что-то вроде этого:

    RewriteEngine on
    RewriteRule ^(.*)\/examp$ /examp.php [R=301,L]
    - and - 
    RewriteRule ^(.*)\/[a-zA-Z0-9\-\_\.]+$ /user.php?u=$1 [R=301,L]

Последний пример возьмет то, что находится между [], и поместит его в переменную $ 1

Вот хорошая ссылка, чтобы получить васначато: http://www.webweaver.nu/html-tips/web-redirection.shtml

...