У меня есть следующее правило в моем текущем файле .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
указывал на то же самое / видео / login.php.
благодаря
Просто добавьте трейлинг-косую черту:
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]
Эта работа отлично подходит для меня:
Rewriterule ^ login (/ |) $ /videos/login.php
Использование mod_rewrite
RewriteEngine On RewriteCond %{REQUEST_URI} ^/videos/login/?$ RewriteRule (.*) /videos/login.php [L,R=301]
перенаправить 301 /videos/login/index.html http://yoursite.com/videos/login.php Сервер изменит адрес http://mysite.com/videos/login/ и http://mysite.com/videos/login на http://mysite.com/videos/login/index.html на основе конфигурации, но это значение по умолчанию. Прежде чем он встретит 404, этот адрес будет перенаправлен на новый. По крайней мере, это работает на моем сайте.
Пришлось использовать pre, потому что сайт позволяет мне размещать только одну гиперссылку: /