правило htaccess для пересылки /входа/ и /входа на одну и ту же страницу?


У меня есть следующее правило в моем текущем файле .htaccess для перенаправления /videos/login/ запросов на /videos/login.php

RewriteRule login/ /videos/login.php

Это прекрасно работает, если я получаю доступ к странице входа с помощью http://mysite.com/videos/login/, но когда я пытаюсь получить доступ к той же странице с помощью http://mysite.com/videos/login (без конечной косой черты), это выдает мне ошибку "404 страница не найдена".

Пожалуйста, скажите мне, какое будет правильное правило для файла .htaccess, чтобы любой запрос на http://mysite.com/videos/login/ или http://mysite.com/videos/login указывал на то же самое/videos/login.php страница.

Спасибо

Author: Prashant, 2009-07-10

4 answers

Просто сделайте завершающую косую черту необязательной:

RewriteRule ^videos/login/?$ /videos/login.php

Но вам лучше использовать только один вариант (с косой чертой или без нее) и перенаправлять один на другой:

# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ /$0/ [L,R=301]

# remove trailing slash
RewriteRule (.*)/$ /$1 [L,R=301]
 13
Author: Gumbo, 2009-07-09 20:25:56

Для меня это прекрасно работает:

Перезаписать ^войти(/|)$/videos/login.php

 2
Author: AOvejero, 2009-07-09 20:48:34

Использование mod_rewrite

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/videos/login/?$
RewriteRule (.*) /videos/login.php [L,R=301]
 1
Author: DavidWinterbottom, 2009-07-09 20:26:52
redirect 301 /videos/login/index.html http://yoursite.com/videos/login.php

The server will change the address http://mysite.com/videos/login/ and http://mysite.com/videos/login both to http://mysite.com/videos/login/index.html, based on the configuration but this is default. Before it encounters a 404 this address is redirected to the new one. At least this works at my site.

Пришлось использовать pre, потому что сайт позволяет мне размещать только одну гиперссылку:/

 0
Author: Ruud, 2009-07-09 20:28:34